C语言问题 关于implicit declaration of function
linux-dash
A beautiful web dashboard for Linux
项目地址:https://gitcode.com/gh_mirrors/li/linux-dash
免费下载资源
·
问题描述:在linux中用gcc编译三个文件:
$gcc linktable.c menu.c test.c -o menu -lm
产生警告:
test.c: In function ‘main’:
test.c:20:2: warning: implicit declaration of function ‘MenuConfig’ [-Wimplicit-function-declaration]
MenuConfig(cmd1, desc1, NULL);
^
test.c:43:2: warning: implicit declaration of function ‘ExecuteMenu’ [-Wimplicit-function-declaration]
ExecuteMenu();
^
有两种情况会产生这种警告
- 没有把函数所在的c文件生成.o目标文件
- 在函数所在的c文件中定义了,但是没有在与之相关联的.h文件中声明
检查代码,发现test.c中的main函数调用了menu.c中的MenuConfig和ExecuteMenu函数,他们的原型在menu.h中定义:
int MenuConfig(char* cmd, char* desc, int (*handler)());
int ExecuteMenu();
然而在test.c中却没有将menu.h包含进来,于是发生警告.好在编译器还是很智能的,即使没有#include这个头文件,还是能正常编译链接生成可执行文件.
GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e
added ecosystem file for PM2 4 年前
5def40a3
Add host customization support for the NodeJS version 4 年前
更多推荐
已为社区贡献1条内容
所有评论(0)