伙计们,我已经在项目中使用了我自己的strtok_r()实现一段时间,并且认为我将声明与标准实现保持一致,纯粹是为了整洁。
然而,我通常会快速查看这些内容的少数网站没有将其列为string.h的一部分,所以看起来更远。其他网站做将其列为标准string.h的一部分,但具有不同的声明
它还是不是吗?是否有权威参考?感谢。
编辑:也许是POSIX?答案 0 :(得分:4)
它是POSIX,而不是标准C.如果您检查POSIX spec,您会看到它标有[CX],表示它已经标记为{{3}}。\ n'是C标准的扩展。你也可以在那里找到官方原型:
char *strtok_r(char *restrict s, const char *restrict sep,
char **restrict lasts);
如果您发现不同的声明,可能是其中一些声明并未包含问题6中添加的restrict
个关键字。