3
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__
is not a macro。它的行爲就像在該函數中作用域中創建的靜態變量。
鏈路中最後一段上面寫明:
這些標識符是不預處理宏。在GCC 3.3及更早版本中,僅在C中,
__FUNCTION__
和__PRETTY_FUNCTION__
被視爲字符串文字;它們可以用來初始化char數組,並且可以將它們與其他字符串文字串聯起來。 GCC 3.4和更高版本將它們視爲變量,如__func__
。在C++中,__FUNCTION__
和__PRETTY_FUNCTION__
一直是變量。
@sixletter不確定這是最好的參考,因爲這個問題是關於鏗鏘聲...但這是我發現的第一個。 –
@KonradRudolph:令人困惑的是,它看起來像是clang將其定義爲Microsoft的宏,但不適用於其他平臺。 – user7116
另外,http://sackoverflow.com/a/3214150/340947 –