我写了一个小程序,其中在strcasecmp
处出现了sigsegv错误,一直不知道原因,直到我创建了这个测试用例:
strcasecmp(NULL, "TEST");
当我编译时,收到了以下警告:
test.c:9:4: warning: null argument where non-null required (argument 1) [-Wnonnull]
然而,man strcasecmp
并没有提到关于NULL
参数的任何内容,请问有人可以解释一下我如何从理论上阅读文档来推断这一点,而不是通过经验性编写测试用例吗?这是一个更深层次的标准吗?或者const char *
因某种原因没有权利成为NULL
?