c语言宏定义函数带返回值 c语言中宏定义用法

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

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

成都创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:网站设计制作、成都网站建设、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的永修网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

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

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

扩展资料:

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

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

c语言 定义一个宏函数,根据传入的ret值,switch case 返回不同值????

#define PRINT_ERR(ret) do{\

switch(ret)\

{\

case 1:\

return -1;\

case 2:\

return -2;\

default :\

return -3;\

}\

}while(0)

这是正确的,注意,行跟行之间要紧接,不能有空行(如果有空行,该行也需要有续行符)。

do{}while(0)是宏定义里一个不错的用法

c语言通过宏定义来返回一个数字的绝对值,可是当我的参数是这种情况时却不能得到正确的结果,麻烦高手指

scanf对流的操作遵从类型匹配操作原则

你这边输入“1-5”,scanf只匹配到“1”,就输出结果了

你可以试下,输入“100-5”“2-5”

你会发现,只都是“-”前面的


当前标题:c语言宏定义函数带返回值 c语言中宏定义用法
网址分享:http://csdahua.cn/article/ddspsij.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流