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

比如:
void Func()
{
#define AAA 123
}
这样写好吗,有什么缺点

函数里可以使用宏,但一般写程序都放在前面。如果放在函数里则宏的作用域较小,在定义宏之前不能使用该宏,而且改变该宏的值时不容易找到。
例:
#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;
}
所以函数中定义的宏的作用域较小,只有在定义的后面可以使用。
总结:建议写程序时把用到的宏都放到前面,而且该变宏的值时也很容易找到。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-12-13
一般都是在函数外定义,中函数里定义作用域小,有可能会重名,不提倡
相似回答