
C语言里abs函数有警告
我在.c文件里已经#include<stdio.h>#include<math.h>之后我在循环里定义inta=abs(m-i);然后用gcc的c99标准编译的时候老是有...
我在.c文件里已经
#include <stdio.h>
#include <math.h>
之后我在循环里定义int a=abs(m-i);
然后用gcc的c99标准编译的时候老是有警告:隐式声明函数‘abs’
编译后程序能正常运行,但请问怎样才能不出警告呢?谢谢~
那请问一楼在不使用隐式声明的前提下,abs该怎么用呢?
有写法能在C99下不弹警告么? 展开
#include <stdio.h>
#include <math.h>
之后我在循环里定义int a=abs(m-i);
然后用gcc的c99标准编译的时候老是有警告:隐式声明函数‘abs’
编译后程序能正常运行,但请问怎样才能不出警告呢?谢谢~
那请问一楼在不使用隐式声明的前提下,abs该怎么用呢?
有写法能在C99下不弹警告么? 展开
2个回答
展开全部
一下参考自sun的C用户指南文档:
与 1990 C 标准不同,1999 C 标准不再允许隐式声明。C 编译器的以前版本仅在设置了 -v(详细)的情况下发出有关隐式定义的警告消息。只要标识符隐式定义为 int 或函数,系统便会对隐式定义发出这些消息及其他新警告。
该编译器的几乎所有用户均可能注意到这种变化,原因是它会导致大量警告消息。常见原因包括未能包含用于声明所使用函数的相应系统头文件,如需要包含 <stdio.h> 的 printf。可以使用 -xc99=none 恢复无提示地接受隐式声明的 1990 C 标准行为。
////////////////////////////////////////
补充回答1:你在主函数前面加一句
int _Cdecl abs (int x);
试试
与 1990 C 标准不同,1999 C 标准不再允许隐式声明。C 编译器的以前版本仅在设置了 -v(详细)的情况下发出有关隐式定义的警告消息。只要标识符隐式定义为 int 或函数,系统便会对隐式定义发出这些消息及其他新警告。
该编译器的几乎所有用户均可能注意到这种变化,原因是它会导致大量警告消息。常见原因包括未能包含用于声明所使用函数的相应系统头文件,如需要包含 <stdio.h> 的 printf。可以使用 -xc99=none 恢复无提示地接受隐式声明的 1990 C 标准行为。
////////////////////////////////////////
补充回答1:你在主函数前面加一句
int _Cdecl abs (int x);
试试
参考资料: http://docs.sun.com/app/docs/doc/820-1210/bjazh?l=zh&a=view
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询