『壹』 c語言編譯後出現的文件後綴,是什麼意思
.ilk 當選定漸增型編譯連接時,連接器自動生成ILK文件,記錄連接信息
.obj project中每個cpp經編譯成為obj(object)文件,所有obj文件經鏈接(link)成為可執行文件。所以obj可稱為目標文件或中間文件 .pch 預編譯頭文件(一般擴展名為.PCH),是把一個工程中較穩定的代碼預先編譯好放在一個文件(.PCH)里.這些預先編譯好的代碼可以是任何的C/C++代碼--甚至可以是inline函數,只它們在整個工程中是較為穩定的,即在工程開發過程中不會經常被修改的代碼.
.pdb 全稱是 program debug database
它在工程編譯時自動生成, 程序運行時是不需要它的
但是,要debug代碼時,需要載入它,否則不能調試 .exe 是最終編譯生成的可執行文件 如果你程序編譯完畢,可以正常使用,可以只保留.exe文件,因為其它文件都是編譯過程中間生成或用到的,執行時並不需要。
『貳』 頭文件中的ifndef/define/endif什麼用處
ifndef和endif是一對條件預編譯語句,給你一個例子:
ifndef abc;//意思是如果沒有定義abc這個特徵符,則編譯之後到endif之前的語句否則略過
//define abc;這條語句;
define abc;
endif;
比如有一段代碼,有時需要根據需要不進行編譯或進行編譯,如以下代碼:
ifdef abc;
某段代碼;
endif;
意思就是如果程序中定義了abc特徵符,則編譯這里所說的"某段代碼」,否則不進行編譯,
如果程序是這樣:
ifndef abc;
define abc;
endif;
ifdef abc;
某段代碼;
endif;
則這里所說的「某段代碼」肯定會被編譯,因為在設計程序之初,可能需要根據某個條件來決定是否編譯「某段代碼」,但是後來發現,這樣的條件編譯已經沒有必要,而且必須要編譯「某段代碼」,兩種辦法,一種是把ifdef abc和endif;去掉;另一種就像這里一樣,在
ifdef abc;
某段代碼;
endif;
之前加
ifndef abc;
define abc;
endif;
『叄』 c++語言問題.!~
C是系統級的編程語言
C++是功能很強大,比C開發效率高,因為C++提供了很多演算法和容器類。主要用於多種應用開發,尤其是桌面開發。
C#,很java類似,有自個的應用框架,開發web和桌面程序速度很快。而且基於.net執行,.net其實就是在本地電腦上又加了一層運行時。這樣可以很好的解決本地異構的問題,凡這種語言類腳本語言,特別適合做web開發,因為web開發主要是面臨異構的問題。
代碼生成效率:C<C++<C#
代碼執行效率:C>=C++>C#
1.c++中可以使用宏,當然C++中有很多方式可以避免宏的使用,宏就是文本替換,你給一段代碼起一個名字,然後再你程序中用的這段的代碼的時候,就直接插入宏名即可,編譯之前(預編譯)由預編譯器將宏名換成實際代碼,然後編譯。C++中替代宏的方案有內聯函數(inline),enum,const,template之類的東西。
2.const是變數限定詞,類似的有volatile,register,auto,static,extern之類,你可以翻閱相關參考書(C++
primer)。const和宏常量,enum常量不同,const分配了存儲空間,在程序的.rdata段中,但請注意,這個詞不要常用,你應該用它來先點函數的傳入參數。
3.enum即枚舉類型,枚舉是整形的一個子集,而且這個東西比宏常量好,宏常量出現在預編譯時,enum常量出現在編譯時,const常量出現在運行時。因此宏常量只是文本替換,enum常量需要做靜態類型檢測,如果類型不匹配,則報編譯時錯誤。const常量會做運行時類型檢測。
4.template是C++泛型編程中內容,所謂泛型編程就是編寫的代碼可以針對多個數據類型。如你可以編寫一個加法函數,這個函數可以進行整數,浮點數,復數浮點運算,也可以進行字元串的拼接運算。
5.namespace是命名空間,用來解決標識符命名沖突的問題。其實就是形成雙冒號分字元串來形成標識符。如std::myns::str="ni
shi
xiao
gou!";
std::youns::str="ni
bu
shi
xiao
gou~".
6.malloc,free
是C語言中動態創建變數用的,new和delete是C++中動態創建變數用的。其中malloc和new是分配,free和delete是回收。當然new和delete比malloc和free高級。
還是不懂的話,就認真看書吧
,我告訴你這些,你要是明白了
超出大學本科水平了
!
『肆』 c語言中的「宏」是指什麼
是一種批量處理的稱謂。計算機科學里的宏是一種抽象(Abstraction),它根據一系列預定義的規則替換一定的文本模式。
「宏」這個詞的使用暗示著將小命令或動作轉化為一系列指令。
計算機語言如C語言或 匯編語言有簡單的宏系統,由編譯器或匯編器的預處理器實現。C語言的宏預處理器的工作只是簡單的文本搜索和替換,使用附加的文本處理語言如M4,C程序員可以獲得更精巧的宏。
在Objective-C語言源程序中,允許用一個標識符來表示一個字元串,稱為宏,被定義為宏的標識符稱為宏名。在編譯預處理時,對程序中所有出現的宏名,都用宏定義中的字元串去替換,這稱為宏替換或宏展開。
宏定義是由源程序中的宏定義命令完成的,宏替換是由預處理程序自動完成的。在Objective-C語言中,宏分為有參數和無參數兩種。
(4)c語言inline預編譯擴展閱讀
A類宏是用G65 Hxx P#xx Q#xx R#xx或G65
Hxx P#xx Qxx
Rxx格式輸入的,xx的意思就是數值,是以um級的量輸入的,比如你輸入100那就是0.1MM #xx就是變數號,變數號就是把數值代入到一個固定的地址中,固定的地址就是變數。
一般OTD系有#0~#100~#149~#500~#531.關閉電源時變數#100~#149被初始化成「空」,而變數#500~#531保持數據。我們如果說#100=30那麼現在#100地址內的數據就是30了。
B類宏能完成某一功能的一系列指令像子程序那樣存入存儲器,用戶可以設定M、S、T、G代碼調用它們,使用時只需給出這個指令代碼就能執行其功能,也可以像調用子程序一樣使用。
『伍』 在c語言中,如何自定義頭文件
自定義頭文件通常放在使用該頭文件的源文件所在的目錄中,並使用#include "MyHead.h"來包含。
頭文件是不編譯的,因為C語言編譯過程之前有個預編譯過程。在這個過程中用頭文件中的內容替換源文件中「#include」命令,所以在編譯器看來,沒有頭文件,只有源文件。預編譯過程還包括條件編譯。
頭文件為了防止被重復包含,通常的格式是:
/* MyHead.h */
#ifndef _MYHEAD_H_
#define _MYHEAD_H_
(這里是頭文件的內容)
#endif /* _MYHEAD_H_ */
拓展資料
C語言是一門通用計算機編程語言,應用廣泛。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。
盡管C語言提供了許多低級處理的功能,但仍然保持著良好跨平台的特性,以一個標准規格寫出的C語言程序可在許多電腦平台上進行編譯,甚至包含一些嵌入式處理器(單片機或稱MCU)以及超級電腦等作業平台。
『陸』 c語言的語言組成
數據類型
C的數據類型包括:整型、字元型、實型或浮點型(單精度和雙精度)、枚舉類型、數組類型、結構體類型、共用體類型、指針類型和空類型。
常量與變數
常量其值不可改變,符號常量名通常用大寫。
變數是以某標識符為名字,其值可以改變的量。標識符是以字母或下劃線開頭的一串由字母、數字或下劃線構成的序列,請注意第一個字元必須為字母或下劃線,否則為不合法的變數名。變數在編譯時為其分配相應存儲單元。
數組
如果一個變數名後面跟著一個有數字的中括弧,這個聲明就是數組聲明。字元串也是一種數組。它們以ASCII的NULL作為數組的結束。要特別注意的是,方括內的索引值是從0算起的。
指針
如果一個變數聲明時在前面使用 * 號,表明這是個指針型變數。換句話說,該變數存儲一個地址,而 *(此處特指單目運算符 * ,下同。C語言中另有 雙目運算符 *) 則是取內容操作符,意思是取這個內存地址里存儲的內容。指針是 C 語言區別於其他同時代高級語言的主要特徵之一。
指針不僅可以是變數的地址,還可以是數組、數組元素、函數的地址。通過指針作為形式參數可以在函數的調用過程得到一個以上的返回值,不同於return(z)這樣的僅能得到一個返回值。
指針是一把雙刃劍,許多操作可以通過指針自然的表達,但是不正確的或者過分的使用指針又會給程序帶來大量潛在的錯誤。
字元串
C語言的字元串其實就是以'