?????????#define 標(biāo)識符 字符串
?????????以上是宏命令的一般形式,上面所說的"字符串"不是我們平時所說的那個"字符串"變量.這點學(xué)要注意一下
!!它只是我們將要代替的東西.哪怕是 int也可以.
???? ????宏的作用就是在本文件中,用指定的標(biāo)識符來代替字符串.在編譯預(yù)處理的時候,將程序中該命令出現(xiàn)的所有標(biāo)識符,用相應(yīng)的字符串代替.這樣我們就可以用很簡單的名字代替一個很長的字符串(包括數(shù)字常量).
?????????當(dāng)然,我們可以在需要的時候,告訴編譯器,我們不再需要某個宏,讓它從我們的程序上消失!!!
?????????用 #undef??命令可以告訴編譯器,我們已經(jīng)不再需要某個宏了.它的一般形式如下:
?????????#undef?? 標(biāo)識符
??????????????????
?????????下面是宏的幾點說明:
NO.1??????宏名(標(biāo)識符)一般習(xí)慣用大寫字符,這樣方便我們區(qū)分變量.當(dāng)然,這不是必須的,我們一樣可以用小寫字符命名!
NO.2??????使用宏名代替一個字符串,可以減少我們重復(fù)書寫某些字符串的工作量.但是它僅僅是字符串的簡單替換,它不做正確性檢查!!正因為它只是簡單的替換.所以,使用不當(dāng),可能會造成程序代碼的膨脹!!這就何不嘗試了!
NO.3??????宏定義不是C/C++編程語言的語句,所以它不必在行魔加分號.如果加了分號則連同分號一起進(jìn)行置換!如:
#define HO 13.2;
...
float fd=HO+HO;
在宏展開侯:
float fd=13.2;+13.2;
...
很明顯,這是一個錯誤的程序!!!!
NO.4??????宏出現(xiàn)在程序中函數(shù)的外面,宏名的有效范圍為定義宏名之后到源文件莫.我們也可以用 #undef? 提前終止宏定義的作用域!
NO.5??????我們也可以在宏定義的時候引用宏名,可以層層疊加!
#define R 3.0
#define? J 63
#define P 47*J
#define L R*J*P
這樣 L 展開后
3.0*63*47*63
睡覺!!!!我也是新手,哪里錯的麻煩提一下,好么
?????????以上是宏命令的一般形式,上面所說的"字符串"不是我們平時所說的那個"字符串"變量.這點學(xué)要注意一下

???? ????宏的作用就是在本文件中,用指定的標(biāo)識符來代替字符串.在編譯預(yù)處理的時候,將程序中該命令出現(xiàn)的所有標(biāo)識符,用相應(yīng)的字符串代替.這樣我們就可以用很簡單的名字代替一個很長的字符串(包括數(shù)字常量).
?????????當(dāng)然,我們可以在需要的時候,告訴編譯器,我們不再需要某個宏,讓它從我們的程序上消失!!!
?????????用 #undef??命令可以告訴編譯器,我們已經(jīng)不再需要某個宏了.它的一般形式如下:
?????????#undef?? 標(biāo)識符
??????????????????
?????????下面是宏的幾點說明:
NO.1??????宏名(標(biāo)識符)一般習(xí)慣用大寫字符,這樣方便我們區(qū)分變量.當(dāng)然,這不是必須的,我們一樣可以用小寫字符命名!
NO.2??????使用宏名代替一個字符串,可以減少我們重復(fù)書寫某些字符串的工作量.但是它僅僅是字符串的簡單替換,它不做正確性檢查!!正因為它只是簡單的替換.所以,使用不當(dāng),可能會造成程序代碼的膨脹!!這就何不嘗試了!
NO.3??????宏定義不是C/C++編程語言的語句,所以它不必在行魔加分號.如果加了分號則連同分號一起進(jìn)行置換!如:
#define HO 13.2;
...
float fd=HO+HO;
在宏展開侯:
float fd=13.2;+13.2;
...
很明顯,這是一個錯誤的程序!!!!
NO.4??????宏出現(xiàn)在程序中函數(shù)的外面,宏名的有效范圍為定義宏名之后到源文件莫.我們也可以用 #undef? 提前終止宏定義的作用域!
NO.5??????我們也可以在宏定義的時候引用宏名,可以層層疊加!
#define R 3.0
#define? J 63
#define P 47*J
#define L R*J*P
這樣 L 展開后
3.0*63*47*63
睡覺!!!!我也是新手,哪里錯的麻煩提一下,好么