Z té knížky bych vybral jen jeden příklad, aby bylo vidět, jak dokáže být C záludné:
float uradnik(float r)
{
    float s;
    s = 3.1415926 * r * r;
    return( s );
}
Většina lidí si myslí, že se to bude počítat jako float, ale není to tak. 3.1415926 je totiž datový typ double, takže všechny argumenty toho výrazu (r) se převedou na double, výpočet se provede v double a nakonec se výsledek opět převede na float. Konverze float <-> double jsou hodně drahé, takže ve výsledku to bude mnohem pomalejší, než kdyby bylo všechno v double. Správný zápis té konstanty má být 3.1415926f.
gcc pro 3.1415926 vygeneruje tenhle kód:
uradnik:
.LFB11:
    .cfi_startproc
    unpcklps    %xmm0, %xmm0 
    cvtps2pd    %xmm0, %xmm1
    movsd   .LC0(%rip), %xmm0 
    mulsd   %xmm1, %xmm0
    mulsd   %xmm1, %xmm0 
    unpcklpd    %xmm0, %xmm0 
    cvtpd2ps    %xmm0, %xmm0 
    ret
a pro 3.1415926f:
uradnik:
.LFB11:
    .cfi_startproc
    movaps  %xmm0, %xmm1
    movss   .LC0(%rip), %xmm0
    mulss   %xmm1, %xmm0
    mulss   %xmm1, %xmm0
    ret