您的位置:首页 > 编程语言 > C语言/C++

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

2017-08-22 15:17 295 查看
【代码】
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()前边。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言 基础 函数