正确使用#define

时间:2017-11-16 13:35:50

标签: c++

到目前为止,我认为#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在某些情况下未被定义。对不起,但实际设置很复杂,难以调试。

1 个答案:

答案 0 :(得分:1)

确实如此,但正如编译器所说pLog未被声明。你可能想要:

#define COUT *pLog
Log* pLog=new Log(..)
COUT<<"something"<<endl;