【发布时间】:2016-05-29 11:16:55
【问题描述】:
我正在尝试创建一个类似this 的函数,它将打印出与其错误号相关的错误详细信息,但我收到了错误error: expected initializer before '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 -
您已经复制了特定于 Windows 的代码。删除
__cdecl。 -
感谢@molbdnilo,将此作为答案发布,我会接受它
-
@molbdnilo,也请详细说明。 :)