我得到了 Ivor Horton 的《Beginning C》这本书,我已经读到一半了,我很喜欢;到目前为止,一切都很好。我在 Windows 上使用 Code::Blocks 作为我的 IDE,现在我遇到了大约 3 天无法解决的问题。
作者在<string.h>
, like中提到了一些“可选”功能,strnlen_s()
还说这些在新标准 C11 中可用(这本书是 2013 年的;我不知道 C11 到底有多新),他还给出了一篇将确定“C 编译器附带的标准库是否支持这些可选函数”的代码。这是代码:
#include <stdio.h>
int main(void)
{
#if defined __STDC_LIB_EXT1__
printf("Optional functions are defined.\n");
#else
printf("Optional functions are not defined.\n");
#endif
return 0;
}
所以我运行代码来检查 Code::Blocks 中的 GCC 是否存在,并确定它不存在。这本书既不推荐编译器也不推荐IDE;我自己学习了 Code::Blocks 和 GCC,因为这是我在大学时做的考试,所以我认为我应该熟悉环境。
问题是,我不知道如何“解决”这个问题,因为strnlen()
它不起作用,strnlen_s()
不起作用,还有很多其他的,而且我真的无法继续阅读一本书。不是我需要它们,或者我不能以任何其他方式做到这一点(strlen()
工作得很好),但知道如何使用非标准函数会很好。