【发布时间】:2021-02-16 08:18:27
【问题描述】:
由于我不确定是否可以将书中的示例代码贴在这里,请让我用普通话解释一下。
我正在学习 C 并尝试了我教科书中的一些代码,其中包含 strerrorlen_s() 和 strerror_s()。当我在 macOS 上使用 clang 编译代码时,我遇到了错误,说函数 'strerror_s'/'strerrorlen_s' 的隐式声明在 C99 中无效。
看来这本书的作者用visual C++编译了代码,我猜我得到了错误,因为我使用了不同的编译器。我猜对了吗?
如果从教科书中发布示例代码没有法律问题,请告诉我,您希望我这样做。我会添加代码。
感谢您的宝贵时间。
【问题讨论】:
-
看起来它在C11 中有效,尝试过使用它吗?
-
您可以通过
strdup(strerror())修复此问题,只需对周围的代码进行一些更改。 -
@RandomDavis 我尝试使用 -std=c11 标志进行编译,但失败了。
标签: c visual-c++ clang