C语言学习笔记——调用函数时提示警告

来源:互联网 发布:软件系统开发培训教材 编辑:程序博客网 时间:2024/05/16 18:32
【代码】
int main()
{
abc();
abc3();
return 0;

}

void abc()
{
int a=65135;
double i=8256.67;
a=(int)i+a;
printf("\n%d,%f\n",a,i);

}

【问题】 
编译时报如下错误:
||=== Build: Debug in c_20170822 (compiler: GNU GCC Compiler) ===|
C:\新建文件夹\c_20170822\main.c||In function 'main':|
C:\新建文件夹\c_20170822\main.c|25|warning: implicit declaration of function 'abc' [-Wimplicit-function-declaration]|
C:\新建文件夹\c_20170822\main.c|29|warning: conflicting types for 'abc'|
C:\新建文件夹\c_20170822\main.c|25|note: previous implicit declaration of 'abc' was here|
||=== Build finished: 0 error(s), 2 warning(s) (0 minute(s), 0 second(s)) ===|

【原因】
1、错误为在一个函数定义之前就去引用它了,这在C语言里是不允许的,尽管void 类型的可以,但是还会提示警告。
2、函数在后面定义先要在前面声明,否则编译器GCC默认abc()返回值类型为int了。所以之后运行到void abc()时,出现|warning: conflicting types for 'abc'|,因为与前面发生冲突。

【解决】
1、把函数放在main()前面书写,即“定义在前,调用在后”。
2、或者可以将其函数名统一写在main() 前边进行函数原型声明。如把void abc()加到main()前边。
原创粉丝点击