在宏中使用__FUNCTION__

时间:2012-11-27 12:26:55

标签: visual-c++

我需要有功能名称。我已经完成了两个程序来打印它的名字: 使用宏:

define LogFnc(info) do {cout<<"=FUNCTION= "<info ; } while(0)

并使用功能:

void LogFnc(string info)
{
    cout<<"=FUNCTION= "<<info;
}

调用其中一种可能性的过程:

int main() {
    LogFnc(__FUNCTION__);
}

为什么我使用宏(第一)没有打印函数名?

1 个答案:

答案 0 :(得分:0)

你在cout中忘了一个括号&lt;&lt;“= FUNCTION =”&lt;&lt; info

#define LogFnc(info) cout<<"=FUNCTION= " << info ; 

让我再说一遍,你的错误循环do{...}while(0)是丑陋的,非直观的,适得其反。