-1
#define GETSTRING(s) return #s
enum a_type { SMALL, MEDIUM, LARGE };
const char* get_data(a_type a) { return GETSTRING(a); }
int main() {
a_type at = SMALL;
const char* s = get_data(at);
return 0;
}
我得到編譯器錯誤:如何解決這個stringise錯誤
main.cpp(5) : error C2059: syntax error : 'return'
我做了什麼錯?
'返回的GetString(一);'擴展爲'數據回傳 「一」;'不是你想要的。 (注意,你不能使用預處理器來實現你想要的東西,它在編譯階段完成它的工作。) –
@DanielFischer如果我刪除了雙重返回,即改變爲:const char * get_data(a_type a){的GetString(一);它在運行時工作。 –
是的,但它會一直返回'「a」'。 –