C语言带参数的宏定义后面的字符串可以使复合语句或者干脆一个函数算法么?如下题该怎么写?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言带参数的宏定义后面的字符串可以使复合语句或者干脆一个函数算法么?如下题该怎么写?相关的知识,希望对你有一定的参考价值。

max后面替换的字符串就是一个max函数啊,这该怎么写?

#define MAX(a,b) ( ( (a) > (b) ) ? (a) : (b) )
#define MIN(a,b) ( ( (a) < (b) ) ? (a) : (b) )
#define ABS(a) ( ( (a) >= 0 ) ? (a) : (-(a)) )
参考技术A #define MAX(a,b) a>b?a:b
#define MIN(a,b) a<b?a:b
#define ABS(a) a>0?a:-a
参考技术B 的首付款和巴勒夫

C语言中的宏定义怎么用?

C语言中的宏定义用法分为两种。

1、不带参数的宏定义比较简单,就是用一个指定的标识符来代表一个字符串。它的一般形式为“#define 标识符 字符串”,例如#define E 2.718281828459。这种方法使用户能以一个简单的名字代替一个长的字符串。

2、带参数的宏定义不是仅仅进行简单的字符串替换,还要进行参数替换。其定义的一般形式为;“#define 标识符(宏名)(参数表) 字符串”,字符串中包含在括号中所指定的参数。例如#define S(a,b) a*b area=S(3. 2)。

扩展资料:

宏定义只占编译时间,函数调用则占用运行时间(分配单元,保存现场,值传递,返回),每次执行都要载入,所以执行相对宏定义会较慢。

使用宏定义次数多时,宏定义展开后源程序很长,因为每展开一次都使程序增长,但是执行起来比较快一点(这也不是绝对的,当有很多宏定义展开,目标文件很大,执行的时候运行时系统换页频繁,效率就会低下)。而函数调用不使源程序变长。

参考技术A

宏定义的格式如下:

#define  标识符  字符串

其中,#表示这是一条预处理命令;#define为宏定义命令;“标识符”为宏定义的宏名;“字符串”可以上常数、表达式、格式串等。


举例如下:

#define PI 3.14   // 对3.14进行宏定义,宏名为PI
void main()

    printf("%f", PI);   // 输出3.14

参考技术B 在想对特定的内容定义的时候用
参考网址 http://baike.baidu.com/view/2076445.htm

有问题请追问 满意记得采纳来自:求助得到的回答本回答被提问者采纳
参考技术B #define 宏名称 定值

以上是关于C语言带参数的宏定义后面的字符串可以使复合语句或者干脆一个函数算法么?如下题该怎么写?的主要内容,如果未能解决你的问题,请参考以下文章

C语言带参数的宏定义:定义宏名时可以不写出参数???

C语言中的宏定义怎么用?

C语言的宏定义问题

C语言的宏定义问题

c语言的宏定义

C语言宏定义实现可变参数