[LUGOS-PROG] ti math...

Miha Tomšič miha.tomsic at gmail.com
Mon Dec 4 20:27:46 CET 2006


Hojla!

Imam en problem in kup težav.

Vzemimo test.c:
----------------
#include <math.h>
#include <stdio.h>

int main(void)
{
        printf("%f, %f\n", 5.6, round(5.6));
        return 0;
}
-----------------

[pingo at localhost ~]$ gcc test.c -o test
test.c: In function 'main':
test.c:6: warning: incompatible implicit declaration of built-in
function 'round'
[pingo at localhost ~]$ ./test
5.600000, 6.000000

Vse lepo in prav, če zanemarimo zgornje opozorilo. -lm ni potreben,
ker uporabi kar vgrajeno funkcijo round().

[pingo at localhost ~]$ gcc test.c -o test -fno-builtin -lm
[pingo at localhost ~]$ ./test
5.600000, 76941697922011962845100419780797605609472.000000

[pingo at localhost ~]$ gcc --version
gcc (GCC) 4.1.1 20061011 (Red Hat 4.1.1-30)

---------------------

Saj mogoče sem jaz malo usekan, ampak zadeva je podobno bizarna tudi
na drugi mašini:
# gcc test.c -o test -lm
# ./test
5.600000, -0.000000
# gcc --version
2.95.4

A kdo vidi kje kakšno očitno napako? Problem se pojavlja še pri drugih
matematičnih funkcijah (recimo sqrt()).

Hvala in srečno, Miha


More information about the lugos-prog mailing list