本文主要是介绍VC中一个关于宏的使用问题 A2W W2A,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
VC中一个关于宏的使用问题
文/赵湘宁
这儿是个关于宏的问题,我曾用过ATL的串转换宏,包括W2A,开始有些东西我还不太明白。为了使用这些宏,必须在函数的开始处用USES_CONVERSION来初始化某些局部变量。用就用吧,但是看看这个宏的定义,它有类似下面的代码:// 在atlconv.h文件中为什么它们用“int x;x;”——这种后面跟着变量的声明?
#define USES_CONVERSION /
int _convert; _convert; /
UINT _acp = GetACP(); _acp; /
LPCWSTR _lpw; _lpw; /?
LPCSTR _lpa; _lpa
很多人都碰到过这个令人困惑的问题,后来发现答案很简单:禁止编译器的警告信息(warning)。如果单独有一行代码:
int x;
且从来没有使用过x,那么编译器汇报错“unreferenced local variable:x”,意思是未引用过的局部变量x,如果将警告信息的输出调到最大。为了避免讨厌的警告,USES_CONVERSION引用声明的变量。
int x; // 声明在C++之前的时代,程序员有时在C中用函数形参做同样的事情来避免“unreferenced formal parameter”或其它的深奥费解的编译错误。
x; // 使用这个变量
void MyFunc(int x, char y
这篇关于VC中一个关于宏的使用问题 A2W W2A的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!