Quote:
Originariamente inviato da Gica78R
Ciao a tutti!
(il valore ritornato dalla funzione) con un int (lo zero). Inoltre il compilatore non da nessun avviso circa questo confronto.
|
Non avvisa in quanto "0" indica anche "NULL", e un confronto tra puntatori è valido. Mettici ad es. "1" e vedrai che il warning viene generato.
Non è una buona idea però confrontare così. Io metterei if ((long)shmat(<parametri>)==-1).
Questa differenza dovrebbe spiegarti anche il punto successivo (l'if senza cast non ti funziona in quanto void * è più logicamente un "unsigned long" che un "long").
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
|