#define SQR(x){X*X};
宏定義的函數不同與其他的函數:
例如上面的函數,實際是這樣的
SQR(b+a);
運算的順序是:b+2*b+2 並不是想象中的(b+2)*(b+2);
******記住********
#define SQR(x)x*x
int main(int argc, char* argv[])
{
int a = 3;
int c = 4;
int b;
b = SQR(a+c);
printf("%d\n",b);
return 0;
}
[color=red]2、預處理命令#define(不能以分號結束)[/color]
在這個例子中要表示一個16位的整數;用UL表達比較合適;
例如,求一年中有多少秒;
#define UL 60*60*24*365
[color=red]3、標識#define宏,在宏中要小心的把參數用括號括起來;[/color]
#define MIN(a,b){(a)<=(b)?(a):(b)}
[color=red]
4、const的作用,[/color]
定義常量,修飾函數的參數,修飾函數的返回值三個用處
[color=red]5、const和#define相比前者有更多的優點,[/color] :evil:
(1)、const 有數據類型,而#define宏常量沒有,
(2)、編譯器可以對前者進行類型的安全監察,而後者只能是字符替換;
(3)、const可以進行調試,但是宏卻不能,在C++中只用const,