gpt4 book ai didi

c++ - 'strerror' 之前的预期初始化程序

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:07:13 26 4
gpt4 key购买 nike

我正在尝试创建类似 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;
}

如何解决这个问题?谢谢

最佳答案

不要自己编写标准库函数的声明。他们通常会有特定于编译器和系统的详细信息,这些详细信息将要求您编写库的作者已经为您完成的一堆条件代码(并且做得更好)。对于 strerror , #include <string.h>是你所需要的全部。不过,更好的是 #include <cstring> ,并使用 std::strerror当你调用它时。

关于c++ - 'strerror' 之前的预期初始化程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37509217/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com