#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
因此咱們在定義的時候,養成一個良好的習慣,建議全部的層次都要加括號。變量