dealing with built-in functions
Andrew Haley
aph-gcc@littlepinkcloud.COM
Wed Jun 13 09:57:00 GMT 2007
Florian Gleixner writes:
> Hi,
>
> i try to fugure out what is the "best way". The following code throws a
> warning:
>
> #include <stdio.h>
> #include <math.h>
>
> int main(void)
> {
> double x=1.7;
> printf("%f %f",x,round(x));
> }
>
> gcc r.c -lm
> r.c: In function 'main':
> r.c:9: warning: incompatible implicit declaration of built-in function
> 'round'
>
> I can avoid this by using the compiler switch -fno-builtin. But as far
> as i understand, the built in functions are optimized. So if i use
> -fno-builtin, i lose some cycles?
> I can also put at line 3:
> extern double round(double);
> and then i don't need the -fno-builtin. But what does that mean? Which
> round() do i use then? Can i avoid the warning if i use other types of
> variables - i don't know how the built-in round() is defined.
> Other thoughts?
Look at the Fine Man Page:
NAME
round, roundf, roundl - round to nearest integer, away from zero
SYNOPSIS
#include <math.h>
double round(double x);
float roundf(float x);
long double roundl(long double x);
Compile with -std=c99; link with -lm.
Note the last line.
Andrew.
More information about the Gcc-help
mailing list