---------------------- asp.net+unity開發、
.net培訓、期待與您交流! ----------------------
c語言一些常見的注意6(尾)
1、(預處理) 預處理是在程式編譯成機器指令之前執行,且所有的預處理都是以#開頭。預處理指令有3種:
1、巨集定義 2、條件編譯 3、檔案包含
2、預處理指令是有作用域的,概念跟變數一致。
3、巨集定義分為帶引數的和不帶引數的,巨集定義的實質就是文字替換。如:
#define count 4 // 巨集定義個常量,在程式中可以用count來代替4,注這裡的變數名要大寫,這是
一種規範,結束巨集定義的變數#undef。
#define sum(a, b) (a+b) // 巨集定義乙個加法運算,注意右邊的要替換的內容要加個括號,這樣在替換的時
候才不會出錯
#define square(a) (a)*(a) // 應該在對於每乙個引數都加乙個括號,這樣在替換的時候才不會出錯
… … // 省略一些**
int c =sum(2,4)*sum(2,4); // 若不加外層括號,最終替換為2+4*2+4=14,但是你實際想要的是(2+4)*(2+4)=36,
所以要加上外層括號
int d= square(2+4); // 不對變數加括號的替換結果是:2+4*2+4=14,所以對引數加上括號才不會出錯
#undef count // 之後再用count會出錯,注意這行結尾沒有分號
採用預編譯效率高
4、(條件編譯)選擇是否編譯那段**,不符合的**不會參加編譯,也就不會占用記憶體,語法與if相
似:#if …#elif… #else …#endif(這句一定要寫)
5、(檔案包含)重複包含同乙個檔案會降低編譯效率,所以避免重複載入,採用條件編譯,假如乙個jiafa的標頭檔案,
它的避免重複載入的預編譯形式如:
#ifndef jiafa_h //假如沒有這個巨集定義,注意這裡巨集變數的名稱的書寫
#define jiafa_h //就定義這個巨集定義 …
#endif // 一定要有這句
6、(typedef)可以給型別取乙個別名,如:typedefint myint; // 注意這裡又分號
一般將int取代成其他型別就可以給其他型別取別名,當中包括基本資料型別、列舉、結構體。
但對於指像函式的指標的定義有點不一樣:
int (*p) (int, int); // 現有指向左邊的形式的函式指標
它的typedef是:typedefint (*新名稱) (int, int);
7、巨集定義也可以為型別取乙個別名,但注意它的實質是文字替換,所以有些時候不適用,像:
#define stringchar * // 巨集定義char *為string型別
string s1,s2; // 這裡的s2不是我們想要的char*型別,只是char型別
8、外部函式:能被本檔案及其他檔案使用的函式稱為外部函式,預設情況下所有的函式都是外部函式。extern的聲
明和定義乙個外部函式,一般可以省略。
內部函式:只能被當前檔案使用的函式稱為內部函式。用static來宣告和定義乙個內部函式
9、全域性變數分兩種:
外部變數:定義的變數能本檔案和其他檔案訪問,預設情況下全域性變數都是外部變數,關鍵子extern用來宣告變數。
而且不同檔案的同名變數代表同個變數。
內部變數:只能在本檔案使用,關鍵字static用來定義乙個變數。不允許與外部變數重名。
10、 static與區域性變數:
static修飾區域性變數會延長它的生存週期(即在記憶體存放的static變數只會在程式結束時候釋放,且只會分配一次),
但是它的作用域不會改變。
---------------------- asp.net+unity開發、
.net培訓、期待與您交流! ----------------------
黑馬程式設計師 C語言較為常見的注意2
asp.net unity開發 net培訓 期待與您交流!c語言較為常見的注意2 1 返回值不寫預設就是int而不是void,void的返回值是return 並且有返回值的可以不用不用寫,編譯器不會報錯,只是警告。2 如果只有函式的宣告,沒有實現,則函式會在鏈結 檢測函式,變數等有沒有定義 是報錯,...
黑馬程式設計師 SQL中的一些常見函式
windows phone 7手機開發 net培訓 期待與您交流!在學習sql基礎的時候,我總結了一些常用的sql函式 一 數字函式 1 abs 求絕對值 2 ceiling 捨入到最大的整數 例如 2.87將被捨入為3 1.12將被捨入到2 3.89將被捨入到 3等 3 floor 捨入到最小整數...
黑馬程式設計師 初學OC的一些注意總結 1
asp.net unity開發 net培訓 期待與您交流!初學oc的一些注意總結 1 1 import 的作用有兩個 一是與inclu de作用一樣,將文 件內容包含到當前所用的檔案 二是他可以避免相同的 標頭檔案重複匯入,就是不用像c語言那樣採用預編譯的方式來實現。2 nslog輸出內容後自動換行...