C 語言重點知識
1、宏定義:也就是常用來做定值用的:
#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;
}
2、預處理命令#define(不能以分號結束)
在這個例子中要表示一個16位的整數;用UL表達比較合適;
例如,求一年中有多少秒;
#define UL 60*60*24*365
3、標識#define宏,在宏中要小心的把參數用括號括起來;
#define MIN(a,b){(a)<=(b)?(a):(b)}
4、const的作用,
定義常量,修飾函數的參數,修飾函數的返回值三個用處
5、const和#define相比前者有更多的優點,
(1)、const 有數據類型,而#define宏常量沒有,
(2)、編譯器可以對前者進行類型的安全監察,而後者只能是字符替換;
(3)、const可以進行調試,但是宏卻不能,在C++中只用const,
#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;
}
2、預處理命令#define(不能以分號結束)
在這個例子中要表示一個16位的整數;用UL表達比較合適;
例如,求一年中有多少秒;
#define UL 60*60*24*365
3、標識#define宏,在宏中要小心的把參數用括號括起來;
#define MIN(a,b){(a)<=(b)?(a):(b)}
4、const的作用,
定義常量,修飾函數的參數,修飾函數的返回值三個用處
5、const和#define相比前者有更多的優點,
(1)、const 有數據類型,而#define宏常量沒有,
(2)、編譯器可以對前者進行類型的安全監察,而後者只能是字符替換;
(3)、const可以進行調試,但是宏卻不能,在C++中只用const,
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.