C++中,有inline函数可以使用。 一般的C编译器,也提供一个类似inline函数的机制,比如一个额外的关键字,象__inline什么的。
象你说的这种情况,可以先做成inline函数,在效率上,跟你使用全局变量没什么区别。一旦以后你发现需要控制这个变量存取时候的行为,你可以很方便的修改你的程序。
如果编译器没有提供inline的机制可以用。你也可以利用宏仿真inline函数。
//.h extern UINT gVal1; #define PutVal1(val) { gVal1 = val;} #define GetVal1() gVal1
不过这样做,就失去了语言本身的类型检查能力。而且一旦出现错误,不太好检查。因为PutVal1, GetVal1是一个宏,它们不会作为符号名称存在于目标文件中。 但让你获得一个可以修改gVal1的定制行为的灵活性。如果你以后要改变PutVal1(), GetVal1()的行为,你可以很方便地将它们改成函数。
至于你要不要选择这样的宏,还是那句话:这完全是个人的行为。 |