printf("sin( 1/2 pi ) = %lf\n", sin(1/2 * PI)); |
1.0/2.0
. (Mindig javasolt így megadni a valós számokat, nehogy elbújjon egy ilyen hiba.)
sinonehalfpi.cMAKRÓ = SZÖVEGHELYETTESÍTÉS. Azaz a makró kifejtése után ezt a kódot fogja a fordító fordítani:
// now, we do not want to swap them: |
if (0) temp__yzVBZq = one; one = two; two = temp__yzVBZq; |
Ha helyesen tördelem a kifejtett kódot, bárki ránézére rájön, mi volt a bug:
// now, we do not want to swap them: |
if (0) |
temp__yzVBZq = one; |
one = two; |
two = temp__yzVBZq; |
A tároló-változónak (temp__yzVBZq
) azért adtam véletlenszerű nevet, nehogy a neve egybeessen valamelyik blokk vagy függvény egy lokális változójának
nevével, mert akkor abban a blokkban vagy függvényben használva a makrót, a lokális változót fogja használni átmeneti tárolóként.
Ilyen makrót csak akkor készítsünk, ha nyomós okunk van rá.
Mi a véleményetek erről? rondaprogram1.c
Javítóként valami ilyesmit kapnék szívesen: rondaprogram2.c
gcc raw2latex.c -Wall -lm -o raw2latex.x |
./raw2latex.x < latexdoc-s.tex > latexdoc-s-2.tex |
pdflatex latexdoc-s-2 |
pdflatex latexdoc-s-2 |
A geek-feladat megoldása:
./raw2latex.x < latexdoc-s.tex | pdflatex -no-parse-first-line /dev/stdin |