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下不弹警告么?
展开
 我来答
无名人1号在此
2019-05-30 · 超过27用户采纳过TA的回答
知道答主
回答量:116
采纳率:81%
帮助的人:14.1万
展开全部

math.h内abs使用inline修饰,表示只能在本文件内使用,如果要调用可以在当前.c内用extern声明:extern double abs(double __x);

stdlib.h内对abs有外部声明,可以加上次头文件试试

黑天鹅之歌
2009-06-15 · 超过19用户采纳过TA的回答
知道答主
回答量:25
采纳率:0%
帮助的人:38.3万
展开全部
一下参考自sun的C用户指南文档:
与 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

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式