一定要知道的 typedef 和 #define 的区别 精简

原创 2018年02月01日 15:55:43
例如:
typedef char * String_t;
#define String_d char *

  • typedef char *String_t 定义了一个新的类型别名,有类型检查
  • #define String_d char * 只是做了个简单的替换,无类型检查
  • 前者在编译的时候处理,后者在预编译(预处理)的时候处理
  • 同时定义多个变量的时候有区别,主要区别在于这种使用方式
String_t a,b;
String_d c,d;

a,b ,c 都是char*类型,而d 为char 类型

一般都遵循#define定义“可读”的常量以及一些宏语句的任务,而typedef则常用来定义关键字、冗长的类型的别名。(推荐typedef)
版权声明:本文为 tengteng 三十分用心 原创的文章, 非商用 自由转载-保持署名-注明出处,谢谢哈 ! *@ο@*

typedef与#define的区别

1.  typedeftypedef故名思意就是类型定义的意思,但是它并不是定义一个新的类型而是给已有的类型起一个别名,在这一点上与引用的含义类似,引用是变量或对象的别名,而typedef定义的是类型...
  • luoweifu
  • luoweifu
  • 2014年11月30日 23:07
  • 15141

typedef和define的详细区别

原文链接:http://developer.51cto.com/art/201104/256060.htm typedef是一种在计算机编程语言中用来声明自定义数据类型,配合各种原有数据类型...
  • zhangbest2009
  • zhangbest2009
  • 2015年07月21日 11:03
  • 601

typedef和#define究竟有什么区别?

typedef int * int_ptr ; 与#define int_ptr int * 作用都是用int_ptr代表 int * ,但是二者不同,正如前面所说 ,#define在预处理 时进行...
  • Pwiling
  • Pwiling
  • 2015年08月16日 21:20
  • 1300

(编程基础)define和typedef的区别

define和typedef有两个主要的区别: (1)可以使用其他类型说明符对宏类型名进行扩展,但是对typedef所定义的类型名不能扩展 (2)在连续的几个变量的声明中,用typedef定义的类...
  • lele_cheny
  • lele_cheny
  • 2013年11月26日 15:34
  • 428

typedef和define具体的详细区别

1) #define是预处理指令,在编译预处理时进行简单的替换,不作正确性检查,不关含义是否正确照样带入,只有在编译已被展开的源程序时才会发现可能的错误并报错。例如: #define PI 3.141...
  • 21aspnet
  • 21aspnet
  • 2011年08月27日 05:10
  • 27855

一定要知道的 typedef 和 #define 的区别 精简

例如: typedef char * String_t; #define String_d char * typedef char *String_t 定义了一个新的...
  • Crazy_Tengt
  • Crazy_Tengt
  • 2018年02月01日 15:55
  • 19

typedef 与 define 区别

这两个我以前也没有很大的关注过这之间还有什么大的区别,不过在书上看见了还是想记录一下,毕竟这是自己不知道..... 关于这两者的用法如下: typedef int* int_ptr #de...
  • ccjjnn19890720
  • ccjjnn19890720
  • 2011年09月20日 12:58
  • 557

#define和typedef在定义指针类型上的优劣

#define和typedef在定义指针类型上的优劣先说下结论:typedef更佳。下面看看代码分析:typedef char *ptr_to_char; char c = 'A'; ptr_to_c...
  • FIRE_TRAY
  • FIRE_TRAY
  • 2016年04月26日 20:38
  • 455

typedef和define区别

typedef int datatype #define datatype int 其中,typedef是类型的别名,用来简化代码,使代码易读性提高。 define仅仅是编译器进行替代 ...
  • Hello_Hwc
  • Hello_Hwc
  • 2014年09月29日 20:37
  • 1108

typedef 与#define的区别

1.1  简化复杂的类型声明 简化复杂的类型声明,或给已有类型起一含义明确的别名;如: typedef bool (*FuncPointer)(int, double); //声明了一个...
  • u012603025
  • u012603025
  • 2016年02月01日 11:06
  • 620
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:一定要知道的 typedef 和 #define 的区别 精简
举报原因:
原因补充:

(最多只允许输入30个字)