这工作
printf("%s body\n",__PRETTY_FUNCTION__);
但是,这并不(错误Expected ')'
):
printf(__PRETTY_FUNCTION__" body\n");
我不能让IDE来告诉我该怎么__PRETTY_FUNCTION__
计算结果为,以确定为什么它不工作。
这工作
printf("%s body\n",__PRETTY_FUNCTION__);
但是,这并不(错误Expected ')'
):
printf(__PRETTY_FUNCTION__" body\n");
我不能让IDE来告诉我该怎么__PRETTY_FUNCTION__
计算结果为,以确定为什么它不工作。
__PRETTY_FUNCTION__
不是宏 。 它的行为就像在功能范围的动态创建一个静态变量。
上面链接中的最后一段写道:
这些标识符是不预处理宏。 在GCC 3.3和更早,在C只,
__FUNCTION__
和__PRETTY_FUNCTION__
被当作字符串文字; 它们可以被用来初始化字符数组,并且它们可以与其他字符串文字被级联。 GCC 3.4,后来把他们当作变量,如__func__
。 在C ++中,__FUNCTION__
和__PRETTY_FUNCTION__
一直变量。