typedef 名字

typedef 机制为我们提供了一种通用的类型定义设施,可以用来为内置的或用户定义的数据类型引入助记符号。例如
typedef double wages;
typedef vector<int> vec_int;
typedef vec_int test_scores;
typedef bool in_attendance;

typedef int *Pint;
这些typedef 名字在程序中可被用作类型标识符
// double hourly, weekly;
wages hourly, weekly;
// vector<int> vec1( 10 );
vec_int vec1( 10 );
// vector<int> test0( class_size );
const int class_size = 34;
test_scores test0( class_size );
// vector< bool > attendance;
vector< in_attendance > attendance( class_size );
// int *table[ 10 ];
Pint table[ 10 ];
typedef 定义,以关键字typedef 开始后面是数据类型和标识符。这里的标识符即typedef名字。它并没有引入一种新的类型,而只是为现有类型引入了一个助记符号typedef 名字。对以出现在任何类型名能够出现的地方,
typedef 名字可以被用作程序文档的辅助说明,它也能够降低声明的复杂度,例如,在典型情况下typedef 名字可以用来增强复杂模板声明的定义的可读性。

下面是一个几乎所有人刚开始时都会答错的问题。错误在于将typedef 当作宏扩展。已知下面的typedef
typedef char *cstring;
在以下声明中cstr 的类型是什么
extern const cstring cstr;
第一个回答差不多都是
const char *cstr
即指向const 字符的指针。但是这是不正确的,const 修饰cstr 的类型cstr 是一个指针,因此这个定义声明了cstr 是一个指向字符的const 指针。

char *const cstr;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值