C语言typedef与#define的区别
生活随笔
收集整理的這篇文章主要介紹了
C语言typedef与#define的区别
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
typedef和#define
define 沒有參加編譯,在預處理的時候就被替換掉了。
typedef參加編譯和鏈接。typedef是重命名,可以為枚舉結構體等等重新命名,提高代碼整潔。
一、typedef的用法
C語言中,typedef常用來定義一個標識符及關鍵字的別名,它是語言編譯過程的一部分,但它并不實際分配內存空間,實例像:
typedef int INT; typedef (int*) pINT;typedef可以增強程序的可讀性,以及標識符的靈活性,但它也有“非直觀性”等缺點。
二、define的用法
define為一宏定義語句,通常用它來定義常量(包括無參量與帶參量),以及用來實現那些“表面似和善、背后一長串”的宏,它本身并不在編譯過程中進行,而是在這之前(預處理過程)就已經完成了,但也因此難以發現潛在的錯誤及其它代碼維護問題,它的實例像:
define FALSE 0 define TRUE 1 define Add(a,b) ((a)+(b)); define Loop_10 for (int i=0; i<10; i++)三、typedef與#define的區別
- #define 歸預處理器管,typedef 歸編譯器管。
- #define 是替換,typedef是重命名
個人結論:這兩個都少用
總結
以上是生活随笔為你收集整理的C语言typedef与#define的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 把student a am i 变成 i
- 下一篇: 这游戏你们玩了多久了?