20170214C語言提公升06 巨集

2021-07-26 22:16:50 字數 1162 閱讀 7254

例如:

#include#define maxsize 255

#define begin

#define foreach for(i = 0; i

#include#define size 255

#define begin

#define foreach(a,b) for(a = 0; a

函式巨集相當於可以接收引數的傳入,他會替換。但是printf()的時候還是要使用原本的引數,不可以使用a和b,a和b只是佔位符。

巨集無論定義在什麼地方,在定義巨集**後面左右的地方都可以再使用這個巨集,與定義在函式裡面還是外面無關。

巨集定以後還可以使用#undef來登出掉。

系統也提供有一些預設好的巨集。

#include #include #define maxsize 255

#define begin

#define foreach(a,b) for(a;ab?a:b

int main()

; int i = 0;

foreach(i, dim(array))

begin

printf("%d\r\n", sum(array[i], array[sum(i, 1)]));

end//列印3 5 7 9 11 13 15 ?(未定義值)

int *p = malloc(sizeof(int) * 5);

int *pp = malloc(int, 5);

int a = 3, b = 2, c = 1;

printf("%d", max(a, max(b, c)));//這裡沒出問題,列印的3。

// a> b>c?b:c ? a : b>c?b:c //大於的優先順序會比三目運算子高!容易出問題。

#undef max

//printf("%d", max(a, b));//這句話無法再呼叫max這個巨集

printf("%s\r\n", __file__);

printf("%d\r\n", __line__);

printf("%s\r\n", __date__);//任何乙個編譯器都可以用這三個預設的巨集

return 0;

}//寫巨集的時候一定要注意優先順序的問題,出錯也經常是因為優先順序出錯。

C語言 06 常量

常量是固定值,在程式執行期間不會改變。這些固定的值,又叫做字面量。常量可以是任何的基本資料型別,比如整數常量 浮點常量 字元常量,或字串字面值,也有列舉常量。常量就像是常規的變數,只不過常量的值在定義後不能進行修改。85 十進位制 0213 八進位制 0x4b 十六進製制 30 整數 30u 無符號...

C語言整型提公升

直接上題 signed char a 0xe0 unsigned int b a unsigned char c a 下面說法正確的是 a.a 0 b 0 為真 b.c a 為真 c.b的16進製為0xffffffe0 d.都不對 說實話這題目第一眼我就沒看懂啥意思,後來看了大佬的分析,發現裡面的門...

C語言整型提公升

整型提公升 c的整型算術運算總是至少以預設整型型別的精度來進行的 為了獲得這個精度,表示式中的字元和短整型運算元在使用之前被轉換為普通整型 表示式的整型運算要在cpu的相應運算器件內執行,cpu內整型運算器alu的運算元位元組長度一般就是int位元組長度,同時也是cpu的通用暫存器的長度 因此,即使...