标签:记忆 命令 特殊 开关 简单 定义 文本 返回 优缺点
#define
命令是C语言中的一个宏定义命令,它用来将一个标识符定义为一个字符串,该标识符被称为宏名,被定义的字符串称为替换文本。
该命令有两种格式:一种是简单的宏定义,另一种是带参数的宏定义。
#define 宏名 字符串
#define 宏名(参数表) 宏体 //此时宏名与参数表之间不能有空格
在程序中出现的是宏名,在该程序被编译前,先将宏名用被定义的字符串替换,这称为宏替换,替换后才进行编译,这种替换没有任何计算功能。
##
连接符。typedef
用来定义类型的别名,这些类型不只包含内部类型,还包括自定义类型,可以起到使类型易于记忆的功能。#define
不只是可以为类型取别名,还可以定义常量、变量、编译开关等。typedef
在编译阶段有效,由于是在编译阶段,因此typedef有类型检查的功能。define
则是宏定义,发生在预处理阶段,也就是编译之前,它只进行简单的字符串替换,而不进行任何检查。#define
没有作用域的限制,只要是之前预定义过的宏,在以后的程序中都可以使用。而typedef
有自己的作用域。#define Conn(x,y) (x##y)
表示x
连接y
:
int n = Conn(123,456); //结果就是n=123456;
#define ToChar(x) (#@x)
给x
加上单引号,结果返回是一个const char
char a = ToChar(1);//结果就是a='1';
#define ToString(x) (#x)
给x加双引号
char* str = ToString(123132);//就成了str="123132";
标签:记忆 命令 特殊 开关 简单 定义 文本 返回 优缺点
原文地址:https://www.cnblogs.com/chay/p/10976960.html