C++函数里面可以使用宏定义吗

C++函数里面可以使用宏定义吗,第1张

函数里可以使用宏,但一般写程序都放在前面。如果放在函数里则宏的作用域较小,在定义宏之前不能使用该宏,而且改变该宏的值时不容易找到。

例:

#include "iostream.h"

int Fun(int a)//函数声明

int main()

{

int a

a=2

cout<<a<<endl

a=Fun(a)

cout<<a<<endl

return 0

}

int Fun(int a)

{

#define AAA 5

a=AAA

return a

}

结果为:

2

5

所以说在函数中可以使用宏。

再如:

#include "iostream.h"

int Fun(int a)//函数声明

int main()

{

int a

a=2

cout<<a<<endl

a=AAA//****在该处使用宏提示没有定义********

cout<<a<<endl

return 0

}

int Fun(int a)

{

#define AAA 5

a=AAA

return a

}

所以函数中定义的宏的作用域较小,只有在定义的后面可以使用。

总结:建议写程序时把用到的宏都放到前面,而且该变宏的值时也很容易找到。

当出于某些原因需要对数据做出修改,只要修改宏定义就行了,而不必在整个源文件中修改。

而至于某些人说的可以加快CPU处理速度、宏运行的速度更快,我并不认同。

编译器对于源文件首先是进行宏替换,然后再编译连接,不管是对于编译后得到程序的运行效率还是编译器编译速度都没有提升

#define 定义一个宏#define LABLE //定义一个空宏,没有具体的内容#define PI 3.14定义一个宏,在使用时可以用PI代替3.14这个常量,编译器在处理时时采用直接替换的方式,既把PI直接换成3.14.宏的好处就是方便修改,假如你的代码多处用到3.14,然后你又修改了这个常量,如果是用的宏,只需要该一处代码就可以了.


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11916712.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存