为什么strlen函数在没有#include <string.h>的情况下工作?

Jam*_*sev 4 c std strlen libraries string.h

快速提问:

strlen[char*]完美的作品无论我#include <string.h>还是不

我从编译器得到的只是一个关于隐式声明的警告,但在功能上它按预期工作.

这是为什么?

R..*_*R.. 6

当您调用未定义的行为时,一种可能的行为是程序的行为与您预期的一样,您的系统,以及您安装的当前版本的库和系统软件.这并不意味着可以这样做.实际上正确的C99编译器不应该允许隐式函数声明; 它会给你一个错误.