大佬教程收集整理的这篇文章主要介绍了在C中使用“隐式声明功能”警告有什么含义?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
另外,为什么这是警告而不是错误. gcc如何成功链接这个可执行文件?正如您在下面的示例中所看到的,可执行文件按预期运行.
以下面两个文件为例:
在file1.c
#include <stdio.h> int main(void) { funcA(); return 0; }
file2.c中
#include <stdio.h> void funcA(void) { puts("hello world"); }
编译&产量
$gcc -Wall -Wextra -c file1.c file2.c file1.c: In function 'main': file1.c:3: warning: implicit declaration of function 'funcA' $gcc -Wall -Wextra file1.o file2.o -o test.exe $./test.exe hello world
int funcA();
由于这与函数定义不匹配,因此从file1.c调用funcA()会调用未定义的行为,这意味着它可能会崩溃.在您的架构上,使用您当前的编译器,它显然不会 – 但架构和编译器会发生变化.
GCC能够链接它,因为当函数类型改变时,表示函数入口点的符号不会改变(再次……在当前架构上,使用当前的编译器 – 尽管这很常见).
正确地声明你的函数是一件好事 – 如果没有其他原因它允许你给你的函数一个原型,这意味着如果你用错误的数量或类型的参数调用它,编译器必须诊断它.
以上是大佬教程为你收集整理的在C中使用“隐式声明功能”警告有什么含义?全部内容,希望文章能够帮你解决在C中使用“隐式声明功能”警告有什么含义?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。