typedef关键字详解

 

1.为语言即定义的类型或自己声明的类型构建一个简短或更有意义的别名。typedef不是新建了一种类型而仅仅是为已知类型起个别名。
2.不能在函数定义内部使用typedef。
3.不能使用typedef为类声明的新名字用作类的构造函数和析构函数名。
4.typedef可以为同一类型重复声明。但不能为不同类型声明相同名称。
例1:
// FILE1.H
typedef char CHAR;

// FILE2.H
typedef char CHAR;

// PROG.CPP
#include "file1.h"
#include "file2.h"  
CHAR x = 'a';    // 成功

例2:
// FILE1.H
typedef char CHAR;

// FILE2.H
typedef char CHAR2;

// PROG.CPP
#include "file1.h"
#include "file2.h"  

CHAR x = 'a';    // 成功
CHAR2 y = 'b';    // 成功

例3:
// FILE1.H
typedef char CHAR;

// FILE2.H
typedef int CHAR;

// PROG.CPP
#include "file1.h"
#include "file2.h"   //错误

5.typedef声明的新名字与普通标识符拥有相同的名字空间。所以在程序中的局部变量和typedef声明的新名字可以同名。
例1:
// typedef_names1.cpp
typedef unsigned long UL;   // 声明了unsigned long的别名UL
int UL;                     // 变量UL与上述UL的名字空间相同,发生重复定义错误

例2:
// typedef_names2.cpp
typedef unsigned long UL;   // 声明了unsigned long的别名UL
int main()
{
   unsigned int UL;   // 变量UL的范围仅位于main()函数内,与上述UL的名字空间不同,成功
}

 

 

 

typedef和#define

 

typedef char* CH;

CH a, b;

 

#define char* CH;

CH a,b;

b就不是指针类型了。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值