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()前边。
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()前边。
相关文章推荐
- openerp学习笔记 错误、警告、提示、确认信息显示
- 【C语言学习笔记】VS中"This function or variable may be unsafe."警告的解决办法
- openerp学习笔记 错误、警告、提示、确认信息显示
- C语言学习笔记6
- 黑马程序员---c语言 指针的学习笔记
- c语言学习笔记1
- c语言学习笔记二十六
- C语言学习笔记(6)
- iOS学习笔记---C语言第三天
- sqlite学习笔记7:C语言中使用sqlite之打开数据库
- (学习笔记)JavaScript中调用函数的括号问题
- c语言学习笔记3之IDE
- c语言 学习笔记
- C语言学习笔记:14_内部函数和外部函数
- C语言Printf()&scanf() 学习笔记
- C语言状态机学习笔记一
- C语言学习笔记(五) 数组
- Linux学习笔记_终端提示符编辑方法(set查看环境变量,.bashrc文件)
- 【黑马程序员】C语言学习笔记之typedef(十五)
- C语言学习笔记(一)