关于Typedef

来源:互联网 发布:谁说菜鸟不懂数据分析 编辑:程序博客网 时间:2024/06/05 15:25

功能:用自定义名字为已有数据类型命名。

类型定义一般形式:    typedef 原有类型    新别名;


说明:

1、typedef没有创造新数据类型。

2、typedef是定义类型别名,必能定义变量。

3、typedef与define不同。


define预编译时处理,简单字符置换。

typedef编译时处理,为已有类型命名。


用处:

1、用于屏蔽原始类型,变成通用形式

      对于大型的软件开发,自己定义数据类型,目的是增加系统的移植性。

2、用于重定义struct, union等类型(简化了代码)

       注意: 千万不要觉得typedef一次只能定义一个类型别名!

typedef struct student{    int i;    char name[10];}STU, *pSTU;

这种技巧在系统头文件中常被使用。


typede的f陷阱一:

typedef char* pstr;int func(const pstr, const pstr);
我们希望表达的是:
int func(const char*, const char*);
可它被解释为:
int func(char* const , char* const);

分析:

 不要被const pstr的表象所迷惑,尽管const放在了str前面,但它修饰的是pstr这个类型,而pstr被定义为char*,不是char。

所以const修饰的时char*型的指针,即这个语义char* const,而不是指针所指向的目标char。      


解决方法:

typedef const char* cpstr;int func(cpstr, cpstr);

typedef的陷阱二:

typedef static int COUNT;
该语句编译错误!


分析:

typedef跟static,auto,extern,register等一样是存储类型关键字。编译不通过是因为声明中存在了多个存数类的关键字。

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 柔版印刷走纸歪斜怎么办 美团外卖一天8单怎么办 单位显示器丢了怎么办员工赔 纸板板门起泡了怎么办 卖家要我开出质量问题证明怎么办 闲鱼买到的商品不符合描述怎么办 寄出去的东西碎了怎么办 闲鱼快递损坏了怎么办 寄快递东西坏了怎么办 快递邮寄东西坏了怎么办 快递被别人拆了怎么办 淘宝买的东西包装破损怎么办 寄血液被退回来怎么办 快递被安检扣了怎么办 淘宝原单退回运费怎么办 运输过程中包裹破损怎么办 天猫没收到货签收怎么办 收到的快递坏了怎么办 自寄的快递少了怎么办 邮的东西弄坏了怎么办 物流签收后发现货物损坏怎么办 发现客人损坏了酒店物品怎么办 东西坏了签收了怎么办 朋友圈贩卖三无产品你怎么办 付钱给微商没有保障怎么办 电镀锌钢带生锈怎么办 电机机油从空气滤芯里流出怎么办 把塑料皮套吃了怎么办 塑料框眼镜有点小了怎么办 出口纸箱打了钉怎么办 买房子交款单据丢了怎么办 买房子所有单据丢失怎么办 车险单据都丢了怎么办 真空包装的东西里面有空气怎么办 发货物忘记写唛头了怎么办 Word文档撤销按钮删除了怎么办 ai保存时未响应怎么办 ai还没保存卡了怎么办 ai卡住了没保存怎么办 屁股沟有硬块红肿怎么办 卧室床选太大了怎么办