C-ansi et portable - C - Programmation
Marsh Posté le 31-07-2006 à 10:05:01
Gattuso a écrit : est-ce que vous pourriez m'indiquer comment savoir si un code est portable et écrit en C-ansi. |
Pour ANSI-C, tu peux activer le mode ANSI 'pur' sur la plupart des compilateurs (lire la doc). Pour gcc (C90), c'est
-ansi -pedantic
Les écarts seront signalés.
Pour 'portable', c'est plus compliqué. Ca dépend vraiment du code et du dégré de portabilité voulu.
Mais je sens bien que tu tournes autour du pot. Quelle est ta vraie question ?
Marsh Posté le 31-07-2006 à 10:09:15
Sinon, tu peux également t'aider de cette page, qui répertorie les fonctions standards et les normes correspondantes :
http://www.schweikhardt.net/identifiers.html
Marsh Posté le 01-08-2006 à 21:14:41
Emmanuel Delahaye a écrit : Pour ANSI-C, tu peux activer le mode ANSI 'pur' sur la plupart des compilateurs (lire la doc). Pour gcc (C90), c'est |
Je pose cette question car sur un livre, j'ai un code écrit en C, et il est demandé si le code est portable et écrit en C-ansi.
Question à laquelle, je ne sais pas répondre.
Un des codes est le suivant :
Citation : [quote]Sur une machine avec codage EBCDIC natif pour les chaines de caractères, la fonction suivante est correcte ? Est-elle écrite en C- ANSI ? ESt-elle portable ?
|
Il y en a d'autres avec plusieurs fonctions mais avec celui-ci, comment savoir s'il est portable et C-ansi en le lisant (sans le tester)?
Marsh Posté le 01-08-2006 à 21:21:01
la fonction est correcte, elle conforme c ansi mais son comportement supposé (de son nom) n'est pas portable
edit: en fait elle n'est peut etre pas correcte, il faut verifier avec l'ebcdic
Marsh Posté le 01-08-2006 à 22:52:52
Un truc vraiment portable (mais moyennement performant) serait de ne pas utiliser la représentation numérique des caractères minuscules mais de faire un test énumératif exhaustif.
En code ASCII par exemple, les lettres minuscules sont numérotés de manières contigues, contrairement à l'EBCDIC.
Marsh Posté le 01-08-2006 à 23:27:33
ReplyMarsh Posté le 01-08-2006 à 23:43:21
oui ? je ne te suis toujours pas. 0x80 c'est bien sur 8 bits également.
Marsh Posté le 01-08-2006 à 23:47:07
pains-aux-raisins a écrit : Emdel > la fonction pour l'EBCDIC mal l'air correcte... |
Oui, c'est possible, j'avais lu c & ~0x80...
J'ai tout effacé.
Marsh Posté le 31-07-2006 à 08:33:48
Bonjour,
est-ce que vous pourriez m'indiquer comment savoir si un code est portable et écrit en C-ansi.
Y a-t-il des astuces pour cela ?
Merci