Re: dealing with built-in functions

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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.

[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux