到目前为止,我认为#define ABC CDE只是让预处理器用CDE替换ABC,但这似乎并非完全正确。我有一个记录器,我可以像这样使用它:
<% data.forEach(function (itm,index){ %>
some codes....
<% } >
为方便使用,我想创建一个别名:
Log* pLog=new Log(..)
*pLog<<"something"<<endl;
但我得到
#define COUT *pLog
COUT<<"something"<<endl
#define不能简单地用* pLog ??
替换COUT 编辑:我已经按照下面的建议制作了一个最小的例子并且它有效,所以关于#define的问题得到了回答,这是正确的。剩下的问题是为什么它在实际环境中不起作用,但我担心这太复杂了,无法在这里讨论。EDIT2:解决了。 COUT被正确替换,但* pLog在某些情况下未被定义。对不起,但实际设置很复杂,难以调试。
答案 0 :(得分:1)
确实如此,但正如编译器所说pLog未被声明。你可能想要:
#define COUT *pLog
Log* pLog=new Log(..)
COUT<<"something"<<endl;