72Fermer74
Kevin KoflerLe 30/09/2007 à 00:45
Martial Demolins (./58) :
Ouep, mais c'est pareil non, c'est pas un pointeur sur 4 octets?

Le C est (relativement) type safe, il ne fonctionne pas comme l'assembleur (où 4 octets sont 4 octets).

De plus, je te signale que long ne fait pas toujours 4 octets, ce sont 8 octets sur x86_64.
PpHd (./69) :
Sur win64 la taille d'un unsigned long est différente d'un pointeur

Oui, et ça casse pas mal de programmes ça. Sous GNU/Linux, un pointeur rentre toujours dans un unsigned long, et il y a des logiciels qui utilisent ça (mais pas comme essayait de le faire Martial, les types ne sont évidemment pas interchangeables). Cela dit, c'est crade, le standard C99 prévoit le type ptrint_t pour ça. Mais comme peu de programmes utilisent le C99... sad
kim (./61) :
" Impérativement, au moins un switch d'optimisation (-Os, -O2 ou -O3). "C'est bien, mais largement pas impératif.

Euh si... -O0 (le mode par défaut) génère du code exécrable (gros et rame à fond), c'est inutilisable sauf à la limite pour pouvoir déboguer plus facilement (mais il y a pas mal de travail effectué dans GCC et GDB pour pouvoir déboguer convenablement un programme optimisé, donc même là, -O0 sert rarement).
En revanche, ce qu je trouverais plutôt impératif, moi, c'est le -WAll, et après, ne rien laisser passer

-Wall, pas -WAll
Sally (./65) :
sinon moi en général je mets -W -Wall (il y a des warnings bien pratiques dans -W aussi)

C'est obsolète -W, dans les GCC récents, c'est -Wextra (mais -W est toujours accepté pour des raisons de compatibilité antérieure).

Sinon, je conseille aussi -Wwrite-strings (c'est aussi mis par défaut dans TIGCC).