c语言define用法举例

 我来答
小熊每天要学习
2022-11-26 · 好好学习,天天向上,每天进步一点点
小熊每天要学习
采纳数:121 获赞数:2621

向TA提问 私信TA
展开全部

C语言中#define用法总结:

1、简单的宏定义

#define标识符替换列表(替换列表可以是数,字符串字面量,标点符号,运算符,标识符,关键字,字符常量。注意:替换列表是可以为空的)。

典型错误:

#define N =100

int a[N];/*这样会成为int a[=100],这里会处理成为一种标识记号一样*/

#define N 100;

int a[N]; /*带分号的定义会成为int a[100;],这是一种很常见的错误*/

#define pin(int*);

pin a,b;

int* a,b;/*本意是a和b都是int型指针,但是实际上变成int* a,b;a是int型指针,而b是int型变量。这是应该使用typedef来代替define,这样a和b就都是int型指针了。*/

2、带参数的宏

#define标识符(x1,x2,x3...xn) 替换列表 (注意:x1,x2,x3..是宏的参数,标识符和其左括弧之间不能有空格)

使用方法:

#define MAX(x,y) ((x)>(y)?(x):(y))

i=MAX(j+k,m-n);

3、宏的特殊单行定义

#define A(x) T_##x

#define B(x) #@x

#define C(x) #x

x=1

替换为:

A(1)------> T_1 (T_##x,##符号是记号粘黏符号,将前后的字符粘黏起来。)

B(1)------> '1' ( #@x , #@ 符号会将宏的参数进行字符串字面量化,并且加‘’号)

C(1)------> "1" ( #x ,#符号会将宏的参数进行字符串字面量化,并且加""号)

4、define的多行定义

define可以替代多行的代码,在每一个换行的时候加上一个"\"

#define MAX(X,Y) do { \

语句1; \

语句2; \

/* 注释的写法 */ \

} while(0) /* (no trailing ; ) */ \

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式