#define用法解析

 

#define Add(a,b) a+b;

在通常使用的時候是沒有問題的,可是若是遇到如:spa

c * Add(a,b) * d

的時候就會出現問題,代數式的本意是a+b而後去和c,d相乘,可是由於使用了define(它只是一個簡單的替換),因此式子實際上變成了
指針

c*a + b*d

另外舉一個例子:
code

#define pin (int*);
pin a,b;

本意是a和b都是int型指針,可是實際上變成blog

 

int* a,b;

a是int型指針,而b是int型變量。
這是應該使用typedef來代替define,這樣a和b就都是int型指針了。
class

因此咱們在定義的時候,養成一個良好的習慣,建議全部的層次都要加括號。變量

相關文章
相關標籤/搜索