我正在嘗試編寫一個函數,如this,它將打印出與錯誤編號相關的錯誤詳細信息,但出現錯誤error: expected initializer before 'strerror'
。這裏是代碼'strerror'之前的預期初始值設定
#include <iostream>
#include <cstring>
static char* messages[] = {
"No error",
"EPERM (Operation not permitted)",
"ENOENT (No such file or directory)",
"ESRCH (No such process)",
};
static const int NUM_MESSAGES = sizeof(messages)/sizeof(messages[0]);
extern "C" char * __cdecl strerror(int errnum)
{
if (errnum < NUM_MESSAGES)
return messages[errnum];
return "Unknown error";
}
int main()
{
int a;
for(a=0;a<5;a++)
{
std::cout<<a<<" "<<strerror(a)<<"\n";
}
return 0;
}
如何解決這個問題?謝謝
'std :: strerror'不能解決問題@Galik – udit043
您已經複製了Windows特定的代碼。刪除'__cdecl'。 – molbdnilo
感謝@molbdnilo,發佈這個答案,我會接受它 – udit043