我是 C++ 新手,面临下面提到的一个简单问题。在 Visual C++ 2008 中,我正在尝试#define 类似的东西
#define fromThis* toThisPtr
#define fromThis toThisObj
我正在移植一些用linux编写的代码,需要按照winapi进行移植。我得到这样的错误。
error C2008: '*' : unexpected in macro definition
warning C4005: 'fromThis' : macro redefinition
see previous definition of 'fromThis'
我需要在预处理期间重新定义 fromThis* 和 fromThis 。#define 宏中的特殊字符是否不允许?我怎样才能解决这个代码?
EDIT-1:我正在寻找可能的解决方案。我正在尝试将 *fromThis 替换为 'toThisPtr'。一种建议的解决方案是使用 typedef。我喜欢下面的。
typedef toThisPtr fromThis*;
typedef toThisObj fromThis;
现在有了这个解决方案,我得到的错误是:
错误 C2143:语法错误:缺少“;” 在'*'错误C2059之前:语法错误:';' 错误 C2040:“iovec”:“toThisObj”与“toThisPtr”的间接级别不同
typedef 可以解决这个问题。将 fromThis* 替换为 toThisPtr 的标准方法是什么?