typedef和define的区别

大家在初次的学习的时候,可能对typedef和define的区别认识不是很透彻。大部分人会认为这是两个功能很接近的语法

但是它们之间存在一定的差别,下面的例子有助于你的理解

 

以下是一段示例程序,将帮助你的理解:

 

 #include "stdio.h"

//session 1:
typedef int banana;

#define peach int


//session 2:
typedef char *char_ptr;

#define int_ptr int *

int main(int argc, char* argv[])
{
 printf("Hello World!/n");

 //session 1:typedef看成是一种彻底的封装类型,在声明之后不能再往里面
 //增加别的东西。但是define 可以。
 unsigned peach i;//这是正确的在 define 的 peach 之前增加unsigned 修饰
 //unsigned banana j;//这是错误的,在typedef 封装之后的 banana 之前
      //增加 unsigned 修饰


 //session 2: define 和 typedef 在连续几个变量的声明中有巨大的差别
 //typedef定义的类型能够保证声明中所有的变量均为同一种类型
 //define 却无法保证
 int_ptr chalk, cheese;

 char_ptr Bentley, Rolls_Royce;

 //conclusion : define 和 typedef 有一定的差别
 //差别1:typedef看成是一种彻底的封装类型,在声明之后不能再往里面
 //增加别的东西。但是define 可以
 //差别2:typedef定义的类型能够保证声明中所有的变量均为同一种类型
 //define 却无法保证

 return 0;
}

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值