我只是浏览了一下C99标准,寻找一些我现在不记得的东西,当我注意到从strerror函数返回的指针(第7.12.6.2节)不是const限定的,尽管标准说:
strerror函数返回一个指向字符串的指针,其内容为
特定于地区指向的数组不能被程序修改,
但可能会被随后对strerror函数的调用覆盖。
此函数返回可修改字符串而不是类似以下内容的原因是否明显:

char const * const strerror(int errnum);

或者至少
char const * strerror(int errnum);

谢谢。

最佳答案

与字符串文本类型相同:它在C89中已经是这样了,描述了一种可以追溯到在语言中引入const之前的实践更改它将使当前有效的程序无效。

08-16 09:21