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

标签 c libraries std strlen string.h

快速提问:

strlen[char*]无论我是否 #include <string.h> 都能完美运行还是不是

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

这是为什么?

最佳答案

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

关于c - 为什么 strlen 函数在没有 #include<string.h> 的情况下也能工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5805911/

相关文章:

c - 何时在指针上使用数组,反之亦然

java - 反射助手 Java 库

c++ - 在 C++ 代码中奇怪地使用 void

c - 如何从 .t​​ext 文件中查找最小值和最大值

c - 在不知道返回类型的情况下将结构的成员初始化为函数指针

c++ - 我可以在不创建自己的 Docker 镜像的情况下在 Gitpod 中加载其他库吗?

命令行中缺少对 XMapSubwindows 和 DSO 的编译/usr/bin/ld undefined reference

C++标准写法: Does "through all iterators in the range" imply sequentiality?

c++ - 这是升级标准库锁的有效方法吗?

c - 我在 c 中使用 pow 和 sqrt 函数有问题吗?