c语言宏函数是如何执行的 C语言宏的用法

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

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

创新互联公司网站建设由有经验的网站设计师、开发人员和项目经理组成的专业建站团队,负责网站视觉设计、用户体验优化、交互设计和前端开发等方面的工作,以确保网站外观精美、成都网站建设、做网站易于使用并且具有良好的响应性。

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

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

扩展资料:

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

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

关于c语言宏定义这里是怎么用的?

那个是分号,不是冒号。这个分号的作用就是函数调用语句末尾的分号

例如LED_BLUE宏展开后为digitalHi(LED1_GPIO_PORT,LED1_GPIO_PIN);digitalHi(LED2_GPIO_PORT,LED2_GPIO_PIN);digitalLo(LED3_GPIO_PORT,LED3_GPIO_PIN)

你只需要使用“LED_BLUE;”语句就可以关闭LED1和2,打开LED3。

宏定义可以执行多条函数,宏定义的本质实际上是文本替换,把宏定义的内容原原本本地替换到宏使用的地方。

另外,LED2_OFF后面似乎也应该有个分号,否则编译应该会出错的。除非LED2_OFF宏定义里加了分号。

c语言使用宏3个步骤是什么

c语言使用宏3个步骤是:

1)写出这个宏的定义,比如

#define ADD(a,b) ((a)+(b))

2)在代码中应用这个宏,例如

xx=ADD(3+4,5)*ADD(0,7)

3)预编译时系统自动展开宏,例如上述宏展开后的结果是

xx=((3+4)+(5))*((0)+(7))

C语言用带参数的宏时,它时怎样运作的?

带参数的宏计算是要先按参数展开后再计算,也就是先替换再计算,ADD(m+n)*k展开就是:m+n+m+n*k,结果就是 10,

请问C语言中宏定义怎么用

宏定义就好像是WORD中的“全部替换”一样,只不过这个替换是在将源程序在系统“编译”时执行的。

举例说:

#define sub(a,b) ((a)-(b))

源程序中若有

x=sub(200-1,100+10);

会被编译为:

x=((200-1)-(100+10));

即x被赋值为89

如果#define sub(a,b) a-b的话

x=sub(200-1,100+10);

就变成x=200-1-100+10;

x会被赋值为109


网站标题:c语言宏函数是如何执行的 C语言宏的用法
网站URL:http://scjbc.cn/article/dodcsid.html

其他资讯