define & typedef 的识别

  • define & typedef
  • 定义
define  :  文本替换
typedef  :  为类型取别名

  • 运行时机不同
define  :  预处理命令,在编译前运行。
typedef :    编译期运行(正是因为其在编译期执行,所以有类型检查的能力)
  • 作用域
define  :  无作用域限制(只要是在前面定义过的预处理宏,在之后都能使用)
typedef  :  有作用域限制
---------------------------------------------------------------
void func1()  
{  
    #define HW "HelloWorld";  
}  
  
void func2()  
{  
    string str = HW;  
    cout << str << endl;  
}  
---------------------------------------------------------------
void func1()  
{  
    typedef unsigned int UINT;  
}  
  
void func2()  
{  
    UINT uValue = 5;//error C2065: 'UINT' : undeclared identifier  
}  
---------------------------------------------------------------

推荐阅读更多精彩内容