define、const、typedef区别
1.define與const的區別
define生效與預處理階段,const生效與編譯階段。預處理在編譯之前,預處理器將代碼中的宏統一替換為指定的字符 。從語義上講,const是聲明一個不可修改的數據,而define則是在對源代碼進行替換。
const定義的常量,在C語言中是儲存在內存中、需要額外的內存空間的。只有c++才不會為其分配內存,而是將其儲存在符號表中使得它成為一個編譯期間的常量。define定義的常量運行時是直接的操作數(即匯編語言指令的一個字段),并不會存放在內存中。
2.define與typedef的區別
define是C語言中定義的語法,是預處理指令,在預處理時進行簡單而機械的字符替換,不作正確性檢查,只有在編譯已被展開的源程序時才會發現可能的錯誤并報錯。
typedef是關鍵字,在編譯時處理,有類型檢查功能。它在自己的作用域內給一個已經存在的類型一個別名但不能在一個函數定義里面使用typedef。
typedef用來定義類型的別名,起到類型易于記憶的功能。另一個功能是定義機器無關的類型,比如typedef struct A{}AA;A是我們新定義的結構體,也可以說是一個新類型。再比如定義一個RWAL的浮點類型,在目標機器上它可以獲得最高的精度:typedef long double REAL,在不支持lond dable的機器上,看起來是這樣的:typedef double REAL;在不支持double的機器上,它看起來是這樣的:typedef float REAL。
參考博客點擊此處
總結
以上是生活随笔為你收集整理的define、const、typedef区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C语言文件处理
- 下一篇: I/O复用函数的使用——epoll