C語言 define和typedef的區別

2021-08-28 08:10:25 字數 1087 閱讀 8008

#define是 巨集定義命令,#define dint int相當於將**中的int可以寫為dint,dint等價於int。typedef int tint; 是型別定義,tint型別的變數就是int型別的變數。

1.typedef int tint; 和#define dint int

2.typedef char *sint; 和#define pint char*

結論:typedef 是型別定義,將資料型別重新命名,所以在經過typedef重新命名之後,sint a,b;這句**定義的就是兩個字元型的指標,相當於char *a;char *b;。而define只是**替換,pint a,b;這句**定義的是乙個字元型指標a,乙個只是普通字元變數,相當於char *a;char b;。

關於define 巨集定義**替換的例子。

除錯之後k的結果是15,而不是150。其中有乙個過程是k=10*x#define n 3+1

關鍵步驟z=2*(3+1+((3+1+1)*5+1))=60,注意在替換y(n)時,最後乘以n是直接用5+1替換n,不是(5+1)替換。

C語言 define和typedef區分

define巨集定義是字元替換,typedef是定義型別。define int int是將程式中字元為int的字元全部替換為int,在編譯預處理是進行簡單的字元替換,不做正確性檢查,不管含義是否正確,都進行替換。typedef int int是將int定義為int型的字元型別,是採取像定義變數的方法...

define用法,C語言 define詳解

c語言中,可以用 define 定義乙個識別符號來表示乙個常量。其特點是 定義的識別符號不佔記憶體,只是乙個臨時的符號,預編譯後這個符號就不存在了。預編譯又叫預處理。預編譯不是編譯,而是編譯前的處理。這個操作是在正式編譯之前由系統自動完成的。用 define 定義識別符號的一般形式為 define ...

C語言 define用法

define用法及注意事項 1.一般形式 define 識別符號 記號序列 例 define g 9.8 2.帶引數形式 define 識別符號 識別符號表 opt 記號序列 例 define square x x x 注意事項 注意括號使用,不然可能會出現歧義,如果定義成 define squar...