Har en liten fundering när det gäller C. När man vill kunna utföra diverse matematiska operationer brukar man ju inkludera math.h och sedan kompilera med -lm (i alla fall om man använder gcc).
Filen math.h har jag ju hittat på datorn (/usr/include/math.h), men den innehåller ju mest deklarationer och liknande, men själva jobbet måste ju utföras också. Det är väl det flaggan -lm är till för, antar jag, men vad heter källfilen och var ligger den?
Gjorde en sökning på hela burken och det enda jag fann var SYSCALLS.c.x, men den innehöll bara (bland en del annat) något som såg ut som prototyper till de funktioner som ingår i math. Själva funktionerna i sig hittade jag inte någonstans, men jag letar väl på fel ställe och efter fel saker, antar jag.
math.h – var är tillhörande .c-fil?
- Johnny Rosenberg
- Inlägg: 1256
- Blev medlem: 23 jun 2007, 16:18
- OS: Ubuntu
- Utgåva: 22.10 Kinetic Kudu
- Kontakt:
- Konservburk
- Inlägg: 5919
- Blev medlem: 07 apr 2007, 22:28
Re: math.h – var är tillhörande .c-fil?
Det är en del av libm (därav -lm) som följer med libc. Den faktiska källkodsmapp som är mest intressant om du vill se hur t.ex. sqrt, log, exp, sin, cos har kodats hittar du här:
http://www.eglibc.org/cgi-bin/viewvc.cg ... 54/dbl-64/
http://www.eglibc.org/cgi-bin/viewvc.cg ... 54/dbl-64/
- Johnny Rosenberg
- Inlägg: 1256
- Blev medlem: 23 jun 2007, 16:18
- OS: Ubuntu
- Utgåva: 22.10 Kinetic Kudu
- Kontakt:
Re: math.h – var är tillhörande .c-fil?
Tackar!Konservburk skrev:Det är en del av libm (därav -lm) som följer med libc. Den faktiska källkodsmapp som är mest intressant om du vill se hur t.ex. sqrt, log, exp, sin, cos har kodats hittar du här:
http://www.eglibc.org/cgi-bin/viewvc.cg ... 54/dbl-64/
Fascinerande hur de lyckats krångla till något så simpelt som att beräkna absoluta beloppet av ett tal. Undrar vad det är som inte duger med det enkla ”return(x<0?-x:x);”. För långsamt? Något som kan gå snett i någon extrem situation? Kompatibilitetsproblem?
Ibland känns det som att det enkla inte duger, mest för att det är just enkelt…
