C语言学习笔记——调用函数时提示警告
生活随笔
收集整理的這篇文章主要介紹了
C语言学习笔记——调用函数时提示警告
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
【代碼】
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、錯誤為在一個函數(shù)定義之前就去引用它了,這在C語言里是不允許的,盡管void 類型的可以,但是還會提示警告。 2、函數(shù)在后面定義先要在前面聲明,否則編譯器GCC默認abc()返回值類型為int了。所以之后運行到void abc()時,出現(xiàn)|warning: conflicting types for 'abc'|,因為與前面發(fā)生沖突。
【解決】 1、把函數(shù)放在main()前面書寫,即“定義在前,調(diào)用在后”。 2、或者可以將其函數(shù)名統(tǒng)一寫在main() 前邊進行函數(shù)原型聲明。如把void abc()加到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、錯誤為在一個函數(shù)定義之前就去引用它了,這在C語言里是不允許的,盡管void 類型的可以,但是還會提示警告。 2、函數(shù)在后面定義先要在前面聲明,否則編譯器GCC默認abc()返回值類型為int了。所以之后運行到void abc()時,出現(xiàn)|warning: conflicting types for 'abc'|,因為與前面發(fā)生沖突。
【解決】 1、把函數(shù)放在main()前面書寫,即“定義在前,調(diào)用在后”。 2、或者可以將其函數(shù)名統(tǒng)一寫在main() 前邊進行函數(shù)原型聲明。如把void abc()加到main()前邊。
總結(jié)
以上是生活随笔為你收集整理的C语言学习笔记——调用函数时提示警告的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java中Integer.MAX_VAL
- 下一篇: 正念的奇迹 - 喧嚣的世界中获取安宁