Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

C standard ou pas

6 réponses
Avatar
R12y
Bonjour,

Pour un débutant en C, qui suit un document X ou Y et qui ne sait pas
encore exactement ce qui est standard ou pas, comment savoir?
Je dis ça parceque la charte de ce groupe restreint les discussions au C
standard.
A la limite, qu'un vieux de la vieille du C le sache, c'est presque
normal, mais un tout jeune,... c'est pas évident.

--
Telephone portable "intelligent" (SmartPhone) GSM, GPRS,...
Il est sous Linux, ne coute pas trop cher,...
http://www.it2l.com/product_info.php?cPath=91&products_id=456

6 réponses

Avatar
Emmanuel Delahaye
Pour un débutant en C, qui suit un document X ou Y et qui ne sait pas
encore exactement ce qui est standard ou pas, comment savoir?


En principe, c'est indiqué dans le mode d'emploi des fonctions (man ...).

Sinon, un livre comme le Kernighan & Ritchie est clair sur le sujet : il
ne parle que des fonctions standard (à part une annexe bien séparée sur
les fonctions 'unix').

Enfin, ce site indique les fonctions standards :

http://www.dinkumware.com/manuals/reader.aspx?libÉ9

--
A+

Emmanuel Delahaye

Avatar
Pierre Maurette
Bonjour,

Pour un débutant en C, qui suit un document X ou Y et qui ne sait pas
encore exactement ce qui est standard ou pas, comment savoir?
Je dis ça parceque la charte de ce groupe restreint les discussions au C
standard.
A la limite, qu'un vieux de la vieille du C le sache, c'est presque
normal, mais un tout jeune,... c'est pas évident.


Emmanuel a eu hier l'excellente idée de donner ce lien:
http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1124.pdf

Normalement, même si une implémentation n'est pas 100% conforme au
standard (en général c'est paramétrable), sa documenttaion doit le
mentionner. C'est accessoirement le cas de celle de Microsoft, qui est
claire à ce sujet.

D'un autre coté, il ne faut pas être parano. Les questions sur Windows,
Linux, VCL, WX_Widgets, j'en passe, seront traitées ailleurs. Mais le
code C qui va autour peut très bien faire l'objet de questions ici
AMHA.

Le fait qu'un code soit portable (C90 ou C99) est une caractéristique
comme une autre du projet. Et le C est un langage permettant également
d'écrire des choses par essence non portables.

Le groupe est dédié au langage C, mais pas à la norme C. Il est normal
que l'on s'y pose la question de la conformité absolu de telle ou telle
construction, mais on a également le droit de programmer en C en visant
une implémentation particulière.

--
Pierre Maurette

Avatar
Antoine Leca
In news:,
R12y va escriure:
Pour un débutant en C, qui suit un document X ou Y et qui ne sait pas
encore exactement ce qui est standard ou pas, comment savoir?


Première piste :
Si en compilant « normalement » ton code ne crée pas d'avertissement, mais
si ceux-ci apparaissent en mode « conforme à la norme »
(gcc -ansi -pedantic, par exemple), tu sais que tu es sur une construction
tangentielle.

Deuxième piste :
Si en compilant « brut » le compilateur ne proteste pas, mais si en activant
les avertissements (gcc -W -Wall) tu vois venir des messages, il est
probable que ton code n'est strictement conforme, autrement dit qu'il
contient des comportements indéfinis, non portables.

Troisième piste :
Quand tu as un doute, tu demandes ici. Rien qu'à formuler ta question, tu
vas apprendre des choses sur le langage, c'est déjà en soi un bon exercice,
même si tu n'appuies pas sur le bouton Envoyer !


Je dis ça parce que la charte de ce groupe restreint les discussions
au C standard.


Ah bon ? Où cela ? Jamais vu cela au moment de l'AÀD... j'ai mal dû lire
alors, mais cela m'étonnerais... :-(

Autre chose sont les avis (motivés) de certains réguliers.


Antoine

Avatar
Marc Boyer
Le 06-12-2005, R12y a écrit :
Bonjour,

Pour un débutant en C, qui suit un document X ou Y et qui ne sait pas
encore exactement ce qui est standard ou pas, comment savoir?
Je dis ça parceque la charte de ce groupe restreint les discussions au C
standard.
A la limite, qu'un vieux de la vieille du C le sache, c'est presque
normal, mais un tout jeune,... c'est pas évident.


Disons que le principal défaut du "tout jeune" c'est de ne pas
faire la différence entre le langage et la plateforme (genre,
"comment ouvrir une socket non bloquante en C").
Après, s'il se trompe sur des extensions du langages apportés
par son compilateur (genre strdup), je ne crois pas que ça lui
sera reproché méchamment.

Marc Boyer
--
Entre le fort et le faible, c'est la liberte qui opprime et le droit
qui libere. Henri Lacordaire, Dominicain

Avatar
Harpo
Antoine Leca wrote:

In news:,
R12y va escriure:
Pour un débutant en C, qui suit un document X ou Y et qui ne sait pas
encore exactement ce qui est standard ou pas, comment savoir?


Première piste :
Si en compilant « normalement » ton code ne crée pas d'avertissement,
mais si ceux-ci apparaissent en mode « conforme à la norme »
(gcc -ansi -pedantic, par exemple), tu sais que tu es sur une
construction tangentielle.


-stdÉ9 est bien aussi


Avatar
Vincent Lefevre
Dans l'article <4395d463$0$21818$,
Emmanuel Delahaye écrit:

Pour un débutant en C, qui suit un document X ou Y et qui ne sait pas
encore exactement ce qui est standard ou pas, comment savoir?


En principe, c'est indiqué dans le mode d'emploi des fonctions (man ...).

Sinon, un livre comme le Kernighan & Ritchie est clair sur le sujet : il
ne parle que des fonctions standard (à part une annexe bien séparée sur
les fonctions 'unix').


Il a été mis à jour pour C99?

Sinon il faut aussi lire la doc de son implémentation. En effet, la
norme C ne spécifie pas comment le fichier source est interprété en
terme de jeu de caractères.

--
Vincent Lefèvre - Web: <http://www.vinc17.org/>
100% accessible validated (X)HTML - Blog: <http://www.vinc17.org/blog/>
Work: CR INRIA - computer arithmetic / SPACES project at LORIA