Bonjour, J'ai DevC++ pour faire du C. Les lignes suivantes sont elles nécessaires pour créer une DLL?
c'est quoi une DLL ?
news:fr.comp.os.ms-windows.programmation
là, ils savent...
-- Emmanuel The C-FAQ: http://www.eskimo.com/~scs/C-faq/faq.html The C-library: http://www.dinkumware.com/refxc.html
"Mal nommer les choses c'est ajouter du malheur au monde." -- Albert Camus.
Emmanuel Delahaye
Mister Jack wrote on 17/02/05 :
Ce que j'ai toujours eu du mal à comprendre c'est le pourquoi de ce saut de ligne. Je pense que la norme ne devrait pas interférer avec la façon de faire du compilateur, mais bon... faut s'y résigner.
Un fichier texte est formé de lignes. Si la dernière ligne est incomplète, elle pourrait très bien être ignorée. Je ne sais pas ce que dit la norme à ce sujet (probablement rien) mais le bon sens dicte de terminer ses lignes correctement...
-- Emmanuel The C-FAQ: http://www.eskimo.com/~scs/C-faq/faq.html The C-library: http://www.dinkumware.com/refxc.html
"C is a sharp tool"
Mister Jack wrote on 17/02/05 :
Ce que j'ai toujours eu du mal à comprendre c'est le pourquoi de ce saut de
ligne. Je pense que la norme ne devrait pas interférer avec la façon de faire
du compilateur, mais bon... faut s'y résigner.
Un fichier texte est formé de lignes. Si la dernière ligne est
incomplète, elle pourrait très bien être ignorée. Je ne sais pas ce que
dit la norme à ce sujet (probablement rien) mais le bon sens dicte de
terminer ses lignes correctement...
--
Emmanuel
The C-FAQ: http://www.eskimo.com/~scs/C-faq/faq.html
The C-library: http://www.dinkumware.com/refxc.html
Ce que j'ai toujours eu du mal à comprendre c'est le pourquoi de ce saut de ligne. Je pense que la norme ne devrait pas interférer avec la façon de faire du compilateur, mais bon... faut s'y résigner.
Un fichier texte est formé de lignes. Si la dernière ligne est incomplète, elle pourrait très bien être ignorée. Je ne sais pas ce que dit la norme à ce sujet (probablement rien) mais le bon sens dicte de terminer ses lignes correctement...
-- Emmanuel The C-FAQ: http://www.eskimo.com/~scs/C-faq/faq.html The C-library: http://www.dinkumware.com/refxc.html
"C is a sharp tool"
Raymond H.
Bonjour,
"Pierre Maurette" a écrit dans le message de news:
Voici les seules lignes que j'ai dans 'fichier.c': ----------------------- int Addition(int Val1,int Val2) { return((int)(Val1 + Val2)); } ------------------------ Si Addition() est une fonction exportée par la DLL, elle doit s'écrire :
La DLL serait utilisée par un projet VB. J'ai ajouté DLLIMPORT int... comme vous l'avez écrit et l'erreur suivante est listée: 18 C:RHCodesCodes Visual BasicProjet vb RHAllCrypterEn francaisExtra AllCrypterClef modifiéeDLLAllCrypter.c syntax error before "int"
a+ r.h.
Bonjour,
"Pierre Maurette" <maurettepierre@wanadoo.fr> a écrit dans le message de
news: 37j34lF5avuqgU1@individual.net...
Voici les seules lignes que j'ai dans 'fichier.c':
-----------------------
int Addition(int Val1,int Val2)
{
return((int)(Val1 + Val2));
}
------------------------
Si Addition() est une fonction exportée par la DLL, elle doit s'écrire :
La DLL serait utilisée par un projet VB. J'ai ajouté DLLIMPORT int...
comme vous l'avez écrit et l'erreur suivante est listée:
18 C:RHCodesCodes Visual BasicProjet vb RHAllCrypterEn francaisExtra
AllCrypterClef modifiéeDLLAllCrypter.c syntax error before "int"
"Pierre Maurette" a écrit dans le message de news:
Voici les seules lignes que j'ai dans 'fichier.c': ----------------------- int Addition(int Val1,int Val2) { return((int)(Val1 + Val2)); } ------------------------ Si Addition() est une fonction exportée par la DLL, elle doit s'écrire :
La DLL serait utilisée par un projet VB. J'ai ajouté DLLIMPORT int... comme vous l'avez écrit et l'erreur suivante est listée: 18 C:RHCodesCodes Visual BasicProjet vb RHAllCrypterEn francaisExtra AllCrypterClef modifiéeDLLAllCrypter.c syntax error before "int"
a+ r.h.
Raymond H.
Bonjour Mister Jack, une vieille connaissance :-)
"Mister Jack" a écrit dans le message de news: 421475f9$0$363$
Salut Raymond !
Je vois que ça progresse sur l'écriture en C.
Disons que j'ai déjà étudié un cours au complet en C que je viens de terminer avant hier. J'en débute un nouveau car j'en ai perdu beaucoup et je n'ai pas tout compris. C'est trop dans peu de jours, et la fatigue là-dedans. Alors je continue.
Il faut toujours penser à ajouter une ligne vide à la fin de ton programme C. Si quelqu'un savait le pourquoi de ceci, peut-il nous en faire part ? Je me pose la question sans savoir me répondre :p
warning: no newline at end
Pourtant je le trouve très clair ce message.
J'avais une ligne. Je l'ai supprimée et je l'ai remis. Mais en supprimant j'ai remarqué qu'il y avait un espace au début qui me causait cette erreur. Merci et bonne journée Raymond H.
Bonjour Mister Jack,
une vieille connaissance :-)
"Mister Jack" <news@mjcie.net> a écrit dans le message de news:
421475f9$0$363$626a14ce@news.free.fr...
Salut Raymond !
Je vois que ça progresse sur l'écriture en C.
Disons que j'ai déjà étudié un cours au complet en C que je viens de
terminer avant hier. J'en débute un nouveau car j'en ai perdu beaucoup et
je n'ai pas tout compris. C'est trop dans peu de jours, et la fatigue
là-dedans. Alors je continue.
Il faut toujours penser à ajouter une ligne vide à la fin de ton programme
C. Si quelqu'un savait le pourquoi de ceci, peut-il nous en faire part ?
Je me pose la question sans savoir me répondre :p
warning: no newline at end
Pourtant je le trouve très clair ce message.
J'avais une ligne. Je l'ai supprimée et je l'ai remis. Mais en
supprimant j'ai remarqué qu'il y avait un espace au début qui me causait
cette erreur.
Merci et bonne journée
Raymond H.
"Mister Jack" a écrit dans le message de news: 421475f9$0$363$
Salut Raymond !
Je vois que ça progresse sur l'écriture en C.
Disons que j'ai déjà étudié un cours au complet en C que je viens de terminer avant hier. J'en débute un nouveau car j'en ai perdu beaucoup et je n'ai pas tout compris. C'est trop dans peu de jours, et la fatigue là-dedans. Alors je continue.
Il faut toujours penser à ajouter une ligne vide à la fin de ton programme C. Si quelqu'un savait le pourquoi de ceci, peut-il nous en faire part ? Je me pose la question sans savoir me répondre :p
warning: no newline at end
Pourtant je le trouve très clair ce message.
J'avais une ligne. Je l'ai supprimée et je l'ai remis. Mais en supprimant j'ai remarqué qu'il y avait un espace au début qui me causait cette erreur. Merci et bonne journée Raymond H.
manu l.
"Antoine Leca" a écrit dans le message de news:cv297p$ano$
En 421475f9$0$363$, Mister Jack va escriure:
warning: no newline at end Il faut toujours penser à ajouter une ligne vide à la fin de ton
programme C. Si quelqu'un savait le pourquoi de ceci, peut-il nous en faire part ? Je me pose la question sans savoir me répondre :p
La raison officielle c'est que la norme dit qu'il faut le faire.
[snip]
Désolé de vous contredire. La norme ISO 1990, au point 7.9.2, §2, dit :
"C'est l'implémentation qui décide si la dernière ligne doit se terminer par le caractère saut de ligne."
Elle a peut-être changé sur ce point. J'utilise toujours cette version-là.
Au passage je conseille à tous ceux qui veulent en savoir plus sur la norme de lire et de relire l'excellent : "La bibliothèque C standard" de M. P.J. Plauger, éd. Masson. (Mentionné dans la FAQ). Et en français s.v.p. Ca vaut le détour.
Meilleures salutations.
-- Manu L.
"Antoine Leca" <root@localhost.invalid> a écrit dans le message de
news:cv297p$ano$2@shakotay.alphanet.ch...
En 421475f9$0$363$626a14ce@news.free.fr, Mister Jack va escriure:
warning: no newline at end
Il faut toujours penser à ajouter une ligne vide à la fin de ton
programme C. Si quelqu'un savait le pourquoi de ceci, peut-il nous
en faire part ? Je me pose la question sans savoir me répondre :p
La raison officielle c'est que la norme dit qu'il faut le faire.
[snip]
Désolé de vous contredire. La norme ISO 1990, au point 7.9.2, §2, dit :
"C'est l'implémentation qui décide si la dernière ligne doit se terminer par
le caractère saut de ligne."
Elle a peut-être changé sur ce point. J'utilise toujours cette version-là.
Au passage je conseille à tous ceux qui veulent en savoir plus sur la norme
de lire et de relire l'excellent : "La bibliothèque C standard" de M. P.J.
Plauger, éd. Masson. (Mentionné dans la FAQ). Et en
français s.v.p. Ca vaut le détour.
"Antoine Leca" a écrit dans le message de news:cv297p$ano$
En 421475f9$0$363$, Mister Jack va escriure:
warning: no newline at end Il faut toujours penser à ajouter une ligne vide à la fin de ton
programme C. Si quelqu'un savait le pourquoi de ceci, peut-il nous en faire part ? Je me pose la question sans savoir me répondre :p
La raison officielle c'est que la norme dit qu'il faut le faire.
[snip]
Désolé de vous contredire. La norme ISO 1990, au point 7.9.2, §2, dit :
"C'est l'implémentation qui décide si la dernière ligne doit se terminer par le caractère saut de ligne."
Elle a peut-être changé sur ce point. J'utilise toujours cette version-là.
Au passage je conseille à tous ceux qui veulent en savoir plus sur la norme de lire et de relire l'excellent : "La bibliothèque C standard" de M. P.J. Plauger, éd. Masson. (Mentionné dans la FAQ). Et en français s.v.p. Ca vaut le détour.
Meilleures salutations.
-- Manu L.
Erwann ABALEA
Bonjour,
On Thu, 17 Feb 2005, manu l. wrote:
"Antoine Leca" a écrit dans le message de news:cv297p$ano$
En 421475f9$0$363$, Mister Jack va escriure:
warning: no newline at end Il faut toujours penser à ajouter une ligne vide à la fin de ton
programme C. Si quelqu'un savait le pourquoi de ceci, peut-il nous en faire part ? Je me pose la question sans savoir me répondre :p
La raison officielle c'est que la norme dit qu'il faut le faire.
Désolé de vous contredire. La norme ISO 1990, au point 7.9.2, §2, dit :
"C'est l'implémentation qui décide si la dernière ligne doit se terminer par le caractère saut de ligne."
Et la norme de 1999, § 5.1.1.2 dit: "A source file that is not empty shall end in a new-line character, which shall not be immediately preceded by a backslash character before any such splicing takes place." (le splicing en question, c'est de supprimer la suite "n" pour joindre 2 lignes de source).
-- Erwann ABALEA - RSA PGP Key ID: 0x2D0EABD5 ----- Je n'ai pas envie de perdre mon temps à leur APD à la con. Mais j'ai besoin du certificat qu'y est délivré, pour passer le permis. J'ai entendu qu'on le trouvait sur Internet. Quelqu'un aurait-il des infos? -+- DC in GNU : Neuneu s'achète une conduite -+-
Bonjour,
On Thu, 17 Feb 2005, manu l. wrote:
"Antoine Leca" <root@localhost.invalid> a écrit dans le message de
news:cv297p$ano$2@shakotay.alphanet.ch...
En 421475f9$0$363$626a14ce@news.free.fr, Mister Jack va escriure:
warning: no newline at end
Il faut toujours penser à ajouter une ligne vide à la fin de ton
programme C. Si quelqu'un savait le pourquoi de ceci, peut-il nous
en faire part ? Je me pose la question sans savoir me répondre :p
La raison officielle c'est que la norme dit qu'il faut le faire.
Désolé de vous contredire. La norme ISO 1990, au point 7.9.2, §2, dit :
"C'est l'implémentation qui décide si la dernière ligne doit se terminer par
le caractère saut de ligne."
Et la norme de 1999, § 5.1.1.2 dit:
"A source file that is not empty shall end in a new-line character, which
shall not be immediately preceded by a backslash character before any such
splicing takes place." (le splicing en question, c'est de supprimer la
suite "\n" pour joindre 2 lignes de source).
--
Erwann ABALEA <erwann@abalea.com> - RSA PGP Key ID: 0x2D0EABD5
-----
Je n'ai pas envie de perdre mon temps à leur APD à la con. Mais j'ai
besoin du certificat qu'y est délivré, pour passer le permis. J'ai
entendu qu'on le trouvait sur Internet. Quelqu'un aurait-il des infos?
-+- DC in GNU : Neuneu s'achète une conduite -+-
"Antoine Leca" a écrit dans le message de news:cv297p$ano$
En 421475f9$0$363$, Mister Jack va escriure:
warning: no newline at end Il faut toujours penser à ajouter une ligne vide à la fin de ton
programme C. Si quelqu'un savait le pourquoi de ceci, peut-il nous en faire part ? Je me pose la question sans savoir me répondre :p
La raison officielle c'est que la norme dit qu'il faut le faire.
Désolé de vous contredire. La norme ISO 1990, au point 7.9.2, §2, dit :
"C'est l'implémentation qui décide si la dernière ligne doit se terminer par le caractère saut de ligne."
Et la norme de 1999, § 5.1.1.2 dit: "A source file that is not empty shall end in a new-line character, which shall not be immediately preceded by a backslash character before any such splicing takes place." (le splicing en question, c'est de supprimer la suite "n" pour joindre 2 lignes de source).
-- Erwann ABALEA - RSA PGP Key ID: 0x2D0EABD5 ----- Je n'ai pas envie de perdre mon temps à leur APD à la con. Mais j'ai besoin du certificat qu'y est délivré, pour passer le permis. J'ai entendu qu'on le trouvait sur Internet. Quelqu'un aurait-il des infos? -+- DC in GNU : Neuneu s'achète une conduite -+-
Antoine Leca
Désolé pour la dérive sur un sujet différent.
En 42151ac4$0$3408$, manu l. va escriure:
"Antoine Leca" a écrit dans le message de news:cv297p$ano$
warning: no newline at end La raison officielle c'est que la norme dit qu'il faut le faire.
Désolé de vous contredire.
Je ne vois pas de contradiction.
La norme ISO 1990, au point 7.9.2, §2,
La clause 7.9.2 se dénomme "Streams" (flux), et se réfère aux objets FILE manipulés par <stdio.h>. À moins d'exiger que le compilateur C soit écrit en C (ce qui serait une nouveauté pour moi), cette restriction n'est pas transposable.
Mais ce n'est pas tout.
"C'est l'implémentation qui décide si la dernière ligne doit se terminer par le caractère saut de ligne."
Mmmm. J'aime bien le bouquin de Plaugher, mais je me méfie de la traduction en français. On dirait qu'une fois de plus on est devant un problème.
La version anglaise dit " Whether the last line requires a terminating new-line character is implementation-defined. " (texte inchangé dans la norme ANSI de 1989 ou la norme ISO de 1999).
Traduit du langage abscon de la norme en français, cela oblige l'implémentation à expliciter (dans la documentation l'accompagnant) si la contrainte est effective ou pas (sens de l'expression "implementation-defined", cf. article 4, Conformité, dernier paragraphe).
Toujours en suivant la logique de l'article 4, cette même phrase oblige les programmes « strictement conformes » (le plus portable possible) à éviter de dépendre de cette différence, donc les _oblige_ à toujours terminer les écritures sur des flux texte par un n. Bien évidemment, un programme non totalement portable n'a pas de telles obligations (par exemple, avec MS-DOS, si on voulait effacer un fichier .BAT en cours d'exécution il fallait écrire sur la dernière ligne "DEL %0.BAT" _sans_ la fin de ligne, sinon erreur; on voit bien que ce n'est pas portable !)
On voit donc ici que le texte anglais parle de "defined", comportement défini, tandis que le texte français que vous citiez parle de « décide », ce qui induit une possibilité d'alternative.
Évidemment il serait absurde de comprendre cela comme la possibilité que certaines implémentations acceptent une fin de ligne et d'autres la refuseraient ;-). Si donc on enlève cette possibilité, il ne reste plus que la solution... de ne pas se fier au fait que certaines implémentations puissent ne pas exiger ce fameux n, et donc... il faut toujours le mettre.
Donc en fait, le texte que vous citez dit la même chose que ce que j'affirmai, à savoir qu'il faut toujours mettre une fin de ligne à la fin d'un fichier texte, même lorsque celui-ci est généré par un programme C.
Elle a peut-être changé sur ce point. J'utilise toujours cette version-là.
Non, elle n'a pas changé. C'est très bien d'utiliser cette version-là, et à ma connaissance c'est la meilleure version de la norme en français (pour la partie bibliothèque). Malheureusement comme on peut le voir ici, il y a des différences de détail qui peuvent induire en erreur, et donc rien ne remplace la consultation de la vraie norme, malheureusement en anglais.
Traduire en français la norme pourrait être utile, mais: 1) c'est beaucoup de travail, surtout si on veut que ce soit bien fait; et personne n'a vraiment envie de le faire; 2) les utilisateurs dans une importante proportion n'en ont cure, car ils comprennent suffisament l'anglais pour « se débrouiller »; 3) et bien sûr il n'y aucun marché derrière, donc tout plein de problèmes administratifs potentiels (par exemple, il faudrait mettre à disposition des traducteurs potentiels et de leurs réviserus le texte en anglais, ce qui constituerait une potentielle perte de revenus pour les agences de normalisation si c'était fait par le grand public, méthode Open Source).
À l'AFNOR, à un moment on avait tenté de traduire les parties clés (conformité et glossaire, en particulier, ce qui pourrait éviter les problèmes comme celui-ci) des normes C et C++. Mais l'effort n'a pas abouti pendant le --court-- temps où je participais, par manque de ressources.
Antoine
Désolé pour la dérive sur un sujet différent.
En 42151ac4$0$3408$5402220f@news.sunrise.ch, manu l. va escriure:
"Antoine Leca" a écrit dans le message de
news:cv297p$ano$2@shakotay.alphanet.ch...
warning: no newline at end
La raison officielle c'est que la norme dit qu'il faut le faire.
Désolé de vous contredire.
Je ne vois pas de contradiction.
La norme ISO 1990, au point 7.9.2, §2,
La clause 7.9.2 se dénomme "Streams" (flux), et se réfère aux objets FILE
manipulés par <stdio.h>. À moins d'exiger que le compilateur C soit écrit en
C (ce qui serait une nouveauté pour moi), cette restriction n'est pas
transposable.
Mais ce n'est pas tout.
"C'est l'implémentation qui décide si la dernière ligne doit se
terminer par le caractère saut de ligne."
Mmmm. J'aime bien le bouquin de Plaugher, mais je me méfie de la traduction
en français. On dirait qu'une fois de plus on est devant un problème.
La version anglaise dit
" Whether the last line requires a terminating new-line
character is implementation-defined. "
(texte inchangé dans la norme ANSI de 1989 ou la norme ISO de 1999).
Traduit du langage abscon de la norme en français, cela oblige
l'implémentation à expliciter (dans la documentation l'accompagnant) si la
contrainte est effective ou pas (sens de l'expression
"implementation-defined", cf. article 4, Conformité, dernier paragraphe).
Toujours en suivant la logique de l'article 4, cette même phrase oblige les
programmes « strictement conformes » (le plus portable possible) à éviter de
dépendre de cette différence, donc les _oblige_ à
toujours terminer les écritures sur des flux texte par un n. Bien
évidemment, un programme non totalement portable n'a pas de telles
obligations (par exemple, avec MS-DOS, si on voulait effacer un fichier .BAT
en cours d'exécution il fallait écrire sur la dernière ligne "DEL %0.BAT"
_sans_ la fin de ligne, sinon erreur; on voit bien que ce n'est pas portable
!)
On voit donc ici que le texte anglais parle de "defined", comportement
défini, tandis que le texte français que vous citiez parle de « décide », ce
qui induit une possibilité d'alternative.
Évidemment il serait absurde de comprendre cela comme la possibilité que
certaines implémentations acceptent une fin de ligne et d'autres la
refuseraient ;-). Si donc on enlève cette possibilité, il ne reste plus que
la solution... de ne pas se fier au fait que certaines implémentations
puissent ne pas exiger ce fameux n, et donc... il faut toujours le mettre.
Donc en fait, le texte que vous citez dit la même chose que ce que
j'affirmai, à savoir qu'il faut toujours mettre une fin de ligne à la fin
d'un fichier texte, même lorsque celui-ci est généré par un programme C.
Elle a peut-être changé sur ce point. J'utilise toujours cette
version-là.
Non, elle n'a pas changé.
C'est très bien d'utiliser cette version-là, et à ma connaissance c'est la
meilleure version de la norme en français (pour la partie bibliothèque).
Malheureusement comme on peut le voir ici, il y a des différences de détail
qui peuvent induire en erreur, et donc rien ne remplace la consultation de
la vraie norme, malheureusement en anglais.
Traduire en français la norme pourrait être utile, mais:
1) c'est beaucoup de travail, surtout si on veut que ce soit bien fait; et
personne n'a vraiment envie de le faire;
2) les utilisateurs dans une importante proportion n'en ont cure, car ils
comprennent suffisament l'anglais pour « se débrouiller »;
3) et bien sûr il n'y aucun marché derrière, donc tout plein de problèmes
administratifs potentiels (par exemple, il faudrait mettre à disposition des
traducteurs potentiels et de leurs réviserus le texte en anglais, ce qui
constituerait une potentielle perte de revenus pour les agences de
normalisation si c'était fait par le grand public, méthode Open Source).
À l'AFNOR, à un moment on avait tenté de traduire les parties clés
(conformité et glossaire, en particulier, ce qui pourrait éviter les
problèmes comme celui-ci) des normes C et C++. Mais l'effort n'a pas abouti
pendant le --court-- temps où je participais, par manque de ressources.
"Antoine Leca" a écrit dans le message de news:cv297p$ano$
warning: no newline at end La raison officielle c'est que la norme dit qu'il faut le faire.
Désolé de vous contredire.
Je ne vois pas de contradiction.
La norme ISO 1990, au point 7.9.2, §2,
La clause 7.9.2 se dénomme "Streams" (flux), et se réfère aux objets FILE manipulés par <stdio.h>. À moins d'exiger que le compilateur C soit écrit en C (ce qui serait une nouveauté pour moi), cette restriction n'est pas transposable.
Mais ce n'est pas tout.
"C'est l'implémentation qui décide si la dernière ligne doit se terminer par le caractère saut de ligne."
Mmmm. J'aime bien le bouquin de Plaugher, mais je me méfie de la traduction en français. On dirait qu'une fois de plus on est devant un problème.
La version anglaise dit " Whether the last line requires a terminating new-line character is implementation-defined. " (texte inchangé dans la norme ANSI de 1989 ou la norme ISO de 1999).
Traduit du langage abscon de la norme en français, cela oblige l'implémentation à expliciter (dans la documentation l'accompagnant) si la contrainte est effective ou pas (sens de l'expression "implementation-defined", cf. article 4, Conformité, dernier paragraphe).
Toujours en suivant la logique de l'article 4, cette même phrase oblige les programmes « strictement conformes » (le plus portable possible) à éviter de dépendre de cette différence, donc les _oblige_ à toujours terminer les écritures sur des flux texte par un n. Bien évidemment, un programme non totalement portable n'a pas de telles obligations (par exemple, avec MS-DOS, si on voulait effacer un fichier .BAT en cours d'exécution il fallait écrire sur la dernière ligne "DEL %0.BAT" _sans_ la fin de ligne, sinon erreur; on voit bien que ce n'est pas portable !)
On voit donc ici que le texte anglais parle de "defined", comportement défini, tandis que le texte français que vous citiez parle de « décide », ce qui induit une possibilité d'alternative.
Évidemment il serait absurde de comprendre cela comme la possibilité que certaines implémentations acceptent une fin de ligne et d'autres la refuseraient ;-). Si donc on enlève cette possibilité, il ne reste plus que la solution... de ne pas se fier au fait que certaines implémentations puissent ne pas exiger ce fameux n, et donc... il faut toujours le mettre.
Donc en fait, le texte que vous citez dit la même chose que ce que j'affirmai, à savoir qu'il faut toujours mettre une fin de ligne à la fin d'un fichier texte, même lorsque celui-ci est généré par un programme C.
Elle a peut-être changé sur ce point. J'utilise toujours cette version-là.
Non, elle n'a pas changé. C'est très bien d'utiliser cette version-là, et à ma connaissance c'est la meilleure version de la norme en français (pour la partie bibliothèque). Malheureusement comme on peut le voir ici, il y a des différences de détail qui peuvent induire en erreur, et donc rien ne remplace la consultation de la vraie norme, malheureusement en anglais.
Traduire en français la norme pourrait être utile, mais: 1) c'est beaucoup de travail, surtout si on veut que ce soit bien fait; et personne n'a vraiment envie de le faire; 2) les utilisateurs dans une importante proportion n'en ont cure, car ils comprennent suffisament l'anglais pour « se débrouiller »; 3) et bien sûr il n'y aucun marché derrière, donc tout plein de problèmes administratifs potentiels (par exemple, il faudrait mettre à disposition des traducteurs potentiels et de leurs réviserus le texte en anglais, ce qui constituerait une potentielle perte de revenus pour les agences de normalisation si c'était fait par le grand public, méthode Open Source).
À l'AFNOR, à un moment on avait tenté de traduire les parties clés (conformité et glossaire, en particulier, ce qui pourrait éviter les problèmes comme celui-ci) des normes C et C++. Mais l'effort n'a pas abouti pendant le --court-- temps où je participais, par manque de ressources.
Antoine
Pierre Maurette
[...]
Ce que j'ai toujours eu du mal à comprendre c'est le pourquoi de ce saut de ligne. Je pense que la norme ne devrait pas interférer avec la façon de faire du compilateur, mais bon... faut s'y résigner. Attention, ce détail n'est pas à l'apanage du fichier source. J'ai
remarqué la même chose dans les fichiers de config de Thunderbird 1.0 pour Windows (....NomServeur.rc par exemple, qui liste les groupes abonnés). Si la dernière ligne utile n'est pas terminée par un passage à la ligne, elle est ignorée. Une grande partie du code de TB est commune aux versions Linux et Windows. Il faudrait voir le comportement des fread() en mode texte sous gcc face à ce problème. Je suppose qu'un éditeur peut ajouter cette fin de ligne en fin de fichier, ou un compilateur considérer qu'elle y est. Faudrait que je regarde dans les 200.000 optins d'UltraEdit32. -- Pierre
[...]
Ce que j'ai toujours eu du mal à comprendre c'est le pourquoi de ce saut
de ligne. Je pense que la norme ne devrait pas interférer avec la façon
de faire du compilateur, mais bon... faut s'y résigner.
Attention, ce détail n'est pas à l'apanage du fichier source. J'ai
remarqué la même chose dans les fichiers de config de Thunderbird 1.0
pour Windows (....NomServeur.rc par exemple, qui liste les groupes
abonnés). Si la dernière ligne utile n'est pas terminée par un passage à
la ligne, elle est ignorée. Une grande partie du code de TB est commune
aux versions Linux et Windows. Il faudrait voir le comportement des
fread() en mode texte sous gcc face à ce problème.
Je suppose qu'un éditeur peut ajouter cette fin de ligne en fin de
fichier, ou un compilateur considérer qu'elle y est. Faudrait que je
regarde dans les 200.000 optins d'UltraEdit32.
--
Pierre
Ce que j'ai toujours eu du mal à comprendre c'est le pourquoi de ce saut de ligne. Je pense que la norme ne devrait pas interférer avec la façon de faire du compilateur, mais bon... faut s'y résigner. Attention, ce détail n'est pas à l'apanage du fichier source. J'ai
remarqué la même chose dans les fichiers de config de Thunderbird 1.0 pour Windows (....NomServeur.rc par exemple, qui liste les groupes abonnés). Si la dernière ligne utile n'est pas terminée par un passage à la ligne, elle est ignorée. Une grande partie du code de TB est commune aux versions Linux et Windows. Il faudrait voir le comportement des fread() en mode texte sous gcc face à ce problème. Je suppose qu'un éditeur peut ajouter cette fin de ligne en fin de fichier, ou un compilateur considérer qu'elle y est. Faudrait que je regarde dans les 200.000 optins d'UltraEdit32. -- Pierre
Emmanuel Delahaye
Pierre Maurette wrote on 19/02/05 :
Faudrait que je regarde dans les 200.000 optins d'UltraEdit32. As-tu essayé la version 11 avec réduction/expansion des blocs ? L'idée
est bonne mais la réalisation est encore un peu hésitante..
-- Emmanuel The C-FAQ: http://www.eskimo.com/~scs/C-faq/faq.html The C-library: http://www.dinkumware.com/refxc.html
"C is a sharp tool"
Pierre Maurette wrote on 19/02/05 :
Faudrait que je regarde dans les
200.000 optins d'UltraEdit32.
As-tu essayé la version 11 avec réduction/expansion des blocs ? L'idée
est bonne mais la réalisation est encore un peu hésitante..
--
Emmanuel
The C-FAQ: http://www.eskimo.com/~scs/C-faq/faq.html
The C-library: http://www.dinkumware.com/refxc.html
Faudrait que je regarde dans les 200.000 optins d'UltraEdit32. As-tu essayé la version 11 avec réduction/expansion des blocs ? L'idée
est bonne mais la réalisation est encore un peu hésitante..
-- Emmanuel The C-FAQ: http://www.eskimo.com/~scs/C-faq/faq.html The C-library: http://www.dinkumware.com/refxc.html
"C is a sharp tool"
Pierre Maurette
Pierre Maurette wrote on 19/02/05 :
Faudrait que je regarde dans les 200.000 optins d'UltraEdit32.
As-tu essayé la version 11 avec réduction/expansion des blocs ? L'idée est bonne mais la réalisation est encore un peu hésitante.. Je viens de l'installer pour voir. Bon, on passe à 250.000 options ;-)
En fait, c'est pas le nombre que je reproche, c'est le manque d'intuitivité pour les trouver. Apparemment, même en ne validant pas l'affichage des numéros de lignes, on affiche la gouttière. C'est un peu con, mais j'imagine que ça doit pouvoir se régler par une ... option. La réduction/expansion de blocs, je l'attendais, en souvenir d'un vieil EDI sous DOS. Et puis tous comptes faits, avec un bon explorateur de classes/fonctions/variables, je m'en passe facilement. Je commence à trouver qu'à 40¤ et 20¤ la mise à jour, pour un produit monoplateforme, c'est un peu cher. Pour faire du C et/ou du C++ sous Windows, il y a Visual C++ 2005 Express, qui sera à moins de 100¤ (gratuit en Béta). Une fonctionalité serait intéressante sous UltraEdit, ce serait la sauvegarde automatique des fichiers ouverts non à jour à la perte de focus. -- Pierre
Pierre Maurette wrote on 19/02/05 :
Faudrait que je regarde dans les 200.000 optins d'UltraEdit32.
As-tu essayé la version 11 avec réduction/expansion des blocs ? L'idée
est bonne mais la réalisation est encore un peu hésitante..
Je viens de l'installer pour voir. Bon, on passe à 250.000 options ;-)
En fait, c'est pas le nombre que je reproche, c'est le manque
d'intuitivité pour les trouver. Apparemment, même en ne validant pas
l'affichage des numéros de lignes, on affiche la gouttière. C'est un peu
con, mais j'imagine que ça doit pouvoir se régler par une ... option.
La réduction/expansion de blocs, je l'attendais, en souvenir d'un vieil
EDI sous DOS. Et puis tous comptes faits, avec un bon explorateur de
classes/fonctions/variables, je m'en passe facilement.
Je commence à trouver qu'à 40¤ et 20¤ la mise à jour, pour un produit
monoplateforme, c'est un peu cher.
Pour faire du C et/ou du C++ sous Windows, il y a Visual C++ 2005
Express, qui sera à moins de 100¤ (gratuit en Béta).
Une fonctionalité serait intéressante sous UltraEdit, ce serait la
sauvegarde automatique des fichiers ouverts non à jour à la perte de focus.
--
Pierre
Faudrait que je regarde dans les 200.000 optins d'UltraEdit32.
As-tu essayé la version 11 avec réduction/expansion des blocs ? L'idée est bonne mais la réalisation est encore un peu hésitante.. Je viens de l'installer pour voir. Bon, on passe à 250.000 options ;-)
En fait, c'est pas le nombre que je reproche, c'est le manque d'intuitivité pour les trouver. Apparemment, même en ne validant pas l'affichage des numéros de lignes, on affiche la gouttière. C'est un peu con, mais j'imagine que ça doit pouvoir se régler par une ... option. La réduction/expansion de blocs, je l'attendais, en souvenir d'un vieil EDI sous DOS. Et puis tous comptes faits, avec un bon explorateur de classes/fonctions/variables, je m'en passe facilement. Je commence à trouver qu'à 40¤ et 20¤ la mise à jour, pour un produit monoplateforme, c'est un peu cher. Pour faire du C et/ou du C++ sous Windows, il y a Visual C++ 2005 Express, qui sera à moins de 100¤ (gratuit en Béta). Une fonctionalité serait intéressante sous UltraEdit, ce serait la sauvegarde automatique des fichiers ouverts non à jour à la perte de focus. -- Pierre