码迷,mamicode.com
首页 > 其他好文 > 详细

#define 定义与 typedef

时间:2020-03-18 18:41:38      阅读:69      评论:0      收藏:0      [点我收藏+]

标签:变量   一个   预处理   出现   int   efi   字符串   文件   报错   

#define 

#define宏用于定义预处理的替换规则

简单来说,#define 就是最简单的字符串替换 #define ll long long 就会把程序中所有的 ll 替换成 long long 而程序在运行时根本不会出现过 ll 他把 ll 默认理解为 long long  

在一些c语言考试中可能会出一些 #define b a*5  #define a 2+3 问你输出b的值为多少,不要擅自把a理解为2+3=5,而是把他全都替换掉b=2+3*5=17,到这里,你可能就能理解替换的概念了

代码在正式编译前的预处理阶段,预处理器会根据代码中所有"#define"宏定义进行严格的替换,从该宏定义开始的地方起到文件结束或遇到对应的"#undef"指令为止

如果代码中有跟宏定义相关错误,则会在预处理阶段报错

typedef=type+def

"typedef"操作基于现有数据类型定义一个新的数据类型,原有数据类型依然存在,其会在编译阶段由编译器识别并处理。typedef int INT 这时INT就是一个int型的数据类型

typedef语句=typedef + 变量定义语句

去掉typedef,这个语句定义了一个变量

加上typedef,这个变量是什么类型,那它就变成了这个类型的别名

另外

typedef在定义指针的时候

typedef char *ch;

ch a,b;

你定义了两个char *型的变量是完全没有问题的,但是你要是用#define 的话

#define ch char *

ch a,b;

就相当于是char *a,b; 你b的数据类型变成了char

 

#define 定义与 typedef

标签:变量   一个   预处理   出现   int   efi   字符串   文件   报错   

原文地址:https://www.cnblogs.com/YangKun-/p/12518983.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!