j'ai fait une fonction qui est capable
d'afficher correctement (en openGL) une chaine
du code ascii complet jusqu'à 255.
pour que ça fonctionne elle est déclarée comme ça :
void mafonct(unsigned char * s);
si je l'appelle avec une chaine "en dur", comme ça :
mafonct("ça me prend la tête");
pas de warning et
ça fonctionne bien chez moi (XP codeblocks gcc -W -Wall),
mais qu'en est-il de la portabilité ?
quel problème peuvent se poser en compilant ça ailleur ?
c'est quoi le type d'une chaine constante passée comme
ça ?
j'ai fait une fonction qui est capable
d'afficher correctement (en openGL) une chaine
du code ascii complet jusqu'à 255.
pour que ça fonctionne elle est déclarée comme ça :
void mafonct(unsigned char * s);
si je l'appelle avec une chaine "en dur", comme ça :
mafonct("ça me prend la tête");
pas de warning et
ça fonctionne bien chez moi (XP codeblocks gcc -W -Wall),
mais qu'en est-il de la portabilité ?
quel problème peuvent se poser en compilant ça ailleur ?
c'est quoi le type d'une chaine constante passée comme
ça ?
j'ai fait une fonction qui est capable
d'afficher correctement (en openGL) une chaine
du code ascii complet jusqu'à 255.
pour que ça fonctionne elle est déclarée comme ça :
void mafonct(unsigned char * s);
si je l'appelle avec une chaine "en dur", comme ça :
mafonct("ça me prend la tête");
pas de warning et
ça fonctionne bien chez moi (XP codeblocks gcc -W -Wall),
mais qu'en est-il de la portabilité ?
quel problème peuvent se poser en compilant ça ailleur ?
c'est quoi le type d'une chaine constante passée comme
ça ?
L'ASCII est un code 7 bits et s'arrête à 127.
Gcc devrait afficher : warning: pointer targets in passing argument 1 of
'mafonct' differ in signedness
Le jeux de caractères du compilateur n'est peut-être pas ASCII du tout,
sans
parler que les caractères spéciaux sont peut-être encodé en UTF-8 par ton
éditeur et pas juste dans un code 8 bits comme tu le penses.c'est quoi le type d'une chaine constante passée comme
ça ?
C'est tout faux dans le principe et dans la réalisation :-)
L'ASCII est un code 7 bits et s'arrête à 127.
Gcc devrait afficher : warning: pointer targets in passing argument 1 of
'mafonct' differ in signedness
Le jeux de caractères du compilateur n'est peut-être pas ASCII du tout,
sans
parler que les caractères spéciaux sont peut-être encodé en UTF-8 par ton
éditeur et pas juste dans un code 8 bits comme tu le penses.
c'est quoi le type d'une chaine constante passée comme
ça ?
C'est tout faux dans le principe et dans la réalisation :-)
L'ASCII est un code 7 bits et s'arrête à 127.
Gcc devrait afficher : warning: pointer targets in passing argument 1 of
'mafonct' differ in signedness
Le jeux de caractères du compilateur n'est peut-être pas ASCII du tout,
sans
parler que les caractères spéciaux sont peut-être encodé en UTF-8 par ton
éditeur et pas juste dans un code 8 bits comme tu le penses.c'est quoi le type d'une chaine constante passée comme
ça ?
C'est tout faux dans le principe et dans la réalisation :-)
alors ça marche juste parce que mon editeur est aussi
en ISO 8859-1, c'est ça ?
alors ça marche juste parce que mon editeur est aussi
en ISO 8859-1, c'est ça ?
alors ça marche juste parce que mon editeur est aussi
en ISO 8859-1, c'est ça ?
"Eric Levenez" a écrit dans le message de news:
C2F919A1.B1592%
L'ASCII est un code 7 bits et s'arrête à 127.
ok, abus de langage...
ma table c'est ISO 8859-1Gcc devrait afficher : warning: pointer targets in passing argument 1 of
'mafonct' differ in signedness
oui, j'ai pas aimé qu'il me dise rien sur le coup...Le jeux de caractères du compilateur n'est peut-être pas ASCII du tout,
sans
parler que les caractères spéciaux sont peut-être encodé en UTF-8 par ton
éditeur et pas juste dans un code 8 bits comme tu le penses.c'est quoi le type d'une chaine constante passée comme
ça ?
C'est tout faux dans le principe et dans la réalisation :-)
alors ça marche juste parce que mon editeur est aussi
en ISO 8859-1, c'est ça ?
j'oublie l'idée alors...
"Eric Levenez" <usenet@levenez.com> a écrit dans le message de news:
C2F919A1.B1592%usenet@levenez.com...
L'ASCII est un code 7 bits et s'arrête à 127.
ok, abus de langage...
ma table c'est ISO 8859-1
Gcc devrait afficher : warning: pointer targets in passing argument 1 of
'mafonct' differ in signedness
oui, j'ai pas aimé qu'il me dise rien sur le coup...
Le jeux de caractères du compilateur n'est peut-être pas ASCII du tout,
sans
parler que les caractères spéciaux sont peut-être encodé en UTF-8 par ton
éditeur et pas juste dans un code 8 bits comme tu le penses.
c'est quoi le type d'une chaine constante passée comme
ça ?
C'est tout faux dans le principe et dans la réalisation :-)
alors ça marche juste parce que mon editeur est aussi
en ISO 8859-1, c'est ça ?
j'oublie l'idée alors...
"Eric Levenez" a écrit dans le message de news:
C2F919A1.B1592%
L'ASCII est un code 7 bits et s'arrête à 127.
ok, abus de langage...
ma table c'est ISO 8859-1Gcc devrait afficher : warning: pointer targets in passing argument 1 of
'mafonct' differ in signedness
oui, j'ai pas aimé qu'il me dise rien sur le coup...Le jeux de caractères du compilateur n'est peut-être pas ASCII du tout,
sans
parler que les caractères spéciaux sont peut-être encodé en UTF-8 par ton
éditeur et pas juste dans un code 8 bits comme tu le penses.c'est quoi le type d'une chaine constante passée comme
ça ?
C'est tout faux dans le principe et dans la réalisation :-)
alors ça marche juste parce que mon editeur est aussi
en ISO 8859-1, c'est ça ?
j'oublie l'idée alors...
j'ai une question qui me laisse perplexe au sujet
de l'encodage des caractères.
j'ai fait une fonction qui est capable
d'afficher correctement (en openGL) une chaine
du code ascii complet jusqu'à 255.
pour que ça fonctionne elle est déclarée comme ça :
void mafonct(unsigned char * s);
si je l'appelle avec une chaine "en dur", comme ça :
mafonct("ça me prend la tête");
pas de warning et
ça fonctionne bien chez moi (XP codeblocks gcc -W -Wall),
mais qu'en est-il de la portabilité ?
quel problème peuvent se poser en compilant ça ailleur ?
c'est quoi le type d'une chaine constante passée comme
ça ?
j'ai une question qui me laisse perplexe au sujet
de l'encodage des caractères.
j'ai fait une fonction qui est capable
d'afficher correctement (en openGL) une chaine
du code ascii complet jusqu'à 255.
pour que ça fonctionne elle est déclarée comme ça :
void mafonct(unsigned char * s);
si je l'appelle avec une chaine "en dur", comme ça :
mafonct("ça me prend la tête");
pas de warning et
ça fonctionne bien chez moi (XP codeblocks gcc -W -Wall),
mais qu'en est-il de la portabilité ?
quel problème peuvent se poser en compilant ça ailleur ?
c'est quoi le type d'une chaine constante passée comme
ça ?
j'ai une question qui me laisse perplexe au sujet
de l'encodage des caractères.
j'ai fait une fonction qui est capable
d'afficher correctement (en openGL) une chaine
du code ascii complet jusqu'à 255.
pour que ça fonctionne elle est déclarée comme ça :
void mafonct(unsigned char * s);
si je l'appelle avec une chaine "en dur", comme ça :
mafonct("ça me prend la tête");
pas de warning et
ça fonctionne bien chez moi (XP codeblocks gcc -W -Wall),
mais qu'en est-il de la portabilité ?
quel problème peuvent se poser en compilant ça ailleur ?
c'est quoi le type d'une chaine constante passée comme
ça ?
En news:46d3494e$0$30659$,
[snip]
En news:46d3494e$0$30659$426a34cc@news.free.fr,
[snip]
En news:46d3494e$0$30659$,
[snip]
En news:46d3494e$0$30659$,
Stephane Legras-Decussy va escriure:pour que ça fonctionne elle est déclarée comme ça :
void mafonct(unsigned char * s);
Hmmm. Bin voilà, je crois bien que cela ne fonctionne pas, justement. En
tous cas, cela ne réussira pas à afficher correctement
unsigned char test[8] = "123 abc!"
unsigned char test2[8] = "123 abc!"
(ou alors la fonction est douée de pouvoirs magiques, du genre elle
sait que la chaîne fait toujours 8 caractères...)
En news:46d3494e$0$30659$426a34cc@news.free.fr,
Stephane Legras-Decussy va escriure:
pour que ça fonctionne elle est déclarée comme ça :
void mafonct(unsigned char * s);
Hmmm. Bin voilà, je crois bien que cela ne fonctionne pas, justement. En
tous cas, cela ne réussira pas à afficher correctement
unsigned char test[8] = "123 abc!"
unsigned char test2[8] = "123 abc!"
(ou alors la fonction est douée de pouvoirs magiques, du genre elle
sait que la chaîne fait toujours 8 caractères...)
En news:46d3494e$0$30659$,
Stephane Legras-Decussy va escriure:pour que ça fonctionne elle est déclarée comme ça :
void mafonct(unsigned char * s);
Hmmm. Bin voilà, je crois bien que cela ne fonctionne pas, justement. En
tous cas, cela ne réussira pas à afficher correctement
unsigned char test[8] = "123 abc!"
unsigned char test2[8] = "123 abc!"
(ou alors la fonction est douée de pouvoirs magiques, du genre elle
sait que la chaîne fait toujours 8 caractères...)
Dans l'article <fb3sl2$p2q$,
Antoine Leca écrit:En news:46d3494e$0$30659$,
Stephane Legras-Decussy va escriure:pour que ça fonctionne elle est déclarée comme ça :
void mafonct(unsigned char * s);
Hmmm. Bin voilà, je crois bien que cela ne fonctionne pas,
justement. En tous cas, cela ne réussira pas à afficher correctement
unsigned char test[8] = "123 abc!"
unsigned char test2[8] = "123 abc!"
(ou alors la fonction est douée de pouvoirs magiques, du genre elle
sait que la chaîne fait toujours 8 caractères...)
Dans test2, la chaîne ne fait que 3 caractères, donc aucun problème.
Dans l'article <fb3sl2$p2q$1@shakotay.alphanet.ch>,
Antoine Leca <root@localhost.invalid> écrit:
En news:46d3494e$0$30659$426a34cc@news.free.fr,
Stephane Legras-Decussy va escriure:
pour que ça fonctionne elle est déclarée comme ça :
void mafonct(unsigned char * s);
Hmmm. Bin voilà, je crois bien que cela ne fonctionne pas,
justement. En tous cas, cela ne réussira pas à afficher correctement
unsigned char test[8] = "123 abc!"
unsigned char test2[8] = "123 abc!"
(ou alors la fonction est douée de pouvoirs magiques, du genre elle
sait que la chaîne fait toujours 8 caractères...)
Dans test2, la chaîne ne fait que 3 caractères, donc aucun problème.
Dans l'article <fb3sl2$p2q$,
Antoine Leca écrit:En news:46d3494e$0$30659$,
Stephane Legras-Decussy va escriure:pour que ça fonctionne elle est déclarée comme ça :
void mafonct(unsigned char * s);
Hmmm. Bin voilà, je crois bien que cela ne fonctionne pas,
justement. En tous cas, cela ne réussira pas à afficher correctement
unsigned char test[8] = "123 abc!"
unsigned char test2[8] = "123 abc!"
(ou alors la fonction est douée de pouvoirs magiques, du genre elle
sait que la chaîne fait toujours 8 caractères...)
Dans test2, la chaîne ne fait que 3 caractères, donc aucun problème.
En news:20070830075311$,
Vincent Lefevre <vincent+ va escriure:Dans l'article <fb3sl2$p2q$,
Antoine Leca écrit:En news:46d3494e$0$30659$,
Stephane Legras-Decussy va escriure:pour que ça fonctionne elle est déclarée comme ça :
void mafonct(unsigned char * s);
Hmmm. Bin voilà, je crois bien que cela ne fonctionne pas,
justement. En tous cas, cela ne réussira pas à afficher correctement
unsigned char test[8] = "123 abc!"
unsigned char test2[8] = "123 abc!"
(ou alors la fonction est douée de pouvoirs magiques, du genre elle
sait que la chaîne fait toujours 8 caractères...)
Dans test2, la chaîne ne fait que 3 caractères, donc aucun problème.
Tu as trop élagué. Je reprends donc le texte qui a disparu (avec ma
prose,
pour bien comprendre où se situe le problème) :
::> j'ai fait une fonction qui est capable
::> d'afficher correctement (en openGL) une chaine
::> du code ascii complet jusqu'à 255.
::
:: Mmm. Es-tu certain ? Le code ASCII s'étendant de 0 à 127, l'affichage
:: du caractère de code 0 en C est un peu sportif et demande d'utiliser
:: un type spécial pour représenter les chaînes, à savoir un tableau de
:: char _et_ une indication de la longueur; par contre, la manière de
:: déclarer le type de base, signé ou non signé ou rien n'est pas
:: importante.
Et je maintiens : dans ce contexte-là, le tableau teste2 contient une
chaîne
de 8 caractères « ascii complet ».
Et l'« ascii complet », en C, c'est galère. En tous cas, ce n'est pas
trivial et évident.
Antoine
En news:20070830075311$329a@prunille.vinc17.org,
Vincent Lefevre <vincent+news@vinc17.org> va escriure:
Dans l'article <fb3sl2$p2q$1@shakotay.alphanet.ch>,
Antoine Leca <root@localhost.invalid> écrit:
En news:46d3494e$0$30659$426a34cc@news.free.fr,
Stephane Legras-Decussy va escriure:
pour que ça fonctionne elle est déclarée comme ça :
void mafonct(unsigned char * s);
Hmmm. Bin voilà, je crois bien que cela ne fonctionne pas,
justement. En tous cas, cela ne réussira pas à afficher correctement
unsigned char test[8] = "123 abc!"
unsigned char test2[8] = "123 abc!"
(ou alors la fonction est douée de pouvoirs magiques, du genre elle
sait que la chaîne fait toujours 8 caractères...)
Dans test2, la chaîne ne fait que 3 caractères, donc aucun problème.
Tu as trop élagué. Je reprends donc le texte qui a disparu (avec ma
prose,
pour bien comprendre où se situe le problème) :
::> j'ai fait une fonction qui est capable
::> d'afficher correctement (en openGL) une chaine
::> du code ascii complet jusqu'à 255.
::
:: Mmm. Es-tu certain ? Le code ASCII s'étendant de 0 à 127, l'affichage
:: du caractère de code 0 en C est un peu sportif et demande d'utiliser
:: un type spécial pour représenter les chaînes, à savoir un tableau de
:: char _et_ une indication de la longueur; par contre, la manière de
:: déclarer le type de base, signé ou non signé ou rien n'est pas
:: importante.
Et je maintiens : dans ce contexte-là, le tableau teste2 contient une
chaîne
de 8 caractères « ascii complet ».
Et l'« ascii complet », en C, c'est galère. En tous cas, ce n'est pas
trivial et évident.
Antoine
En news:20070830075311$,
Vincent Lefevre <vincent+ va escriure:Dans l'article <fb3sl2$p2q$,
Antoine Leca écrit:En news:46d3494e$0$30659$,
Stephane Legras-Decussy va escriure:pour que ça fonctionne elle est déclarée comme ça :
void mafonct(unsigned char * s);
Hmmm. Bin voilà, je crois bien que cela ne fonctionne pas,
justement. En tous cas, cela ne réussira pas à afficher correctement
unsigned char test[8] = "123 abc!"
unsigned char test2[8] = "123 abc!"
(ou alors la fonction est douée de pouvoirs magiques, du genre elle
sait que la chaîne fait toujours 8 caractères...)
Dans test2, la chaîne ne fait que 3 caractères, donc aucun problème.
Tu as trop élagué. Je reprends donc le texte qui a disparu (avec ma
prose,
pour bien comprendre où se situe le problème) :
::> j'ai fait une fonction qui est capable
::> d'afficher correctement (en openGL) une chaine
::> du code ascii complet jusqu'à 255.
::
:: Mmm. Es-tu certain ? Le code ASCII s'étendant de 0 à 127, l'affichage
:: du caractère de code 0 en C est un peu sportif et demande d'utiliser
:: un type spécial pour représenter les chaînes, à savoir un tableau de
:: char _et_ une indication de la longueur; par contre, la manière de
:: déclarer le type de base, signé ou non signé ou rien n'est pas
:: importante.
Et je maintiens : dans ce contexte-là, le tableau teste2 contient une
chaîne
de 8 caractères « ascii complet ».
Et l'« ascii complet », en C, c'est galère. En tous cas, ce n'est pas
trivial et évident.
Antoine
En news:20070830075311$,
Vincent Lefevre <vincent+ va escriure:Dans l'article <fb3sl2$p2q$,
Antoine Leca écrit:En news:46d3494e$0$30659$,
Stephane Legras-Decussy va escriure:pour que ça fonctionne elle est déclarée comme ça :
void mafonct(unsigned char * s);
Hmmm. Bin voilà, je crois bien que cela ne fonctionne pas,
justement. En tous cas, cela ne réussira pas à afficher correctement
unsigned char test[8] = "123 abc!"
unsigned char test2[8] = "123 abc!"
(ou alors la fonction est douée de pouvoirs magiques, du genre elle
sait que la chaîne fait toujours 8 caractères...)
Dans test2, la chaîne ne fait que 3 caractères, donc aucun problème.
Tu as trop élagué. Je reprends donc le texte qui a disparu (avec ma prose,
pour bien comprendre où se situe le problème) :
::> j'ai fait une fonction qui est capable
::> d'afficher correctement (en openGL) une chaine
::> du code ascii complet jusqu'à 255.
::
:: Mmm. Es-tu certain ? Le code ASCII s'étendant de 0 à 127, l'affichage
:: du caractère de code 0 en C est un peu sportif et demande d'utiliser
:: un type spécial pour représenter les chaînes, à savoir un tableau de
:: char _et_ une indication de la longueur; par contre, la manière de
:: déclarer le type de base, signé ou non signé ou rien n'est pas
:: importante.
Et je maintiens : dans ce contexte-là, le tableau teste2 contient une chaîne
de 8 caractères « ascii complet ».
En news:20070830075311$329a@prunille.vinc17.org,
Vincent Lefevre <vincent+news@vinc17.org> va escriure:
Dans l'article <fb3sl2$p2q$1@shakotay.alphanet.ch>,
Antoine Leca <root@localhost.invalid> écrit:
En news:46d3494e$0$30659$426a34cc@news.free.fr,
Stephane Legras-Decussy va escriure:
pour que ça fonctionne elle est déclarée comme ça :
void mafonct(unsigned char * s);
Hmmm. Bin voilà, je crois bien que cela ne fonctionne pas,
justement. En tous cas, cela ne réussira pas à afficher correctement
unsigned char test[8] = "123 abc!"
unsigned char test2[8] = "123 abc!"
(ou alors la fonction est douée de pouvoirs magiques, du genre elle
sait que la chaîne fait toujours 8 caractères...)
Dans test2, la chaîne ne fait que 3 caractères, donc aucun problème.
Tu as trop élagué. Je reprends donc le texte qui a disparu (avec ma prose,
pour bien comprendre où se situe le problème) :
::> j'ai fait une fonction qui est capable
::> d'afficher correctement (en openGL) une chaine
::> du code ascii complet jusqu'à 255.
::
:: Mmm. Es-tu certain ? Le code ASCII s'étendant de 0 à 127, l'affichage
:: du caractère de code 0 en C est un peu sportif et demande d'utiliser
:: un type spécial pour représenter les chaînes, à savoir un tableau de
:: char _et_ une indication de la longueur; par contre, la manière de
:: déclarer le type de base, signé ou non signé ou rien n'est pas
:: importante.
Et je maintiens : dans ce contexte-là, le tableau teste2 contient une chaîne
de 8 caractères « ascii complet ».
En news:20070830075311$,
Vincent Lefevre <vincent+ va escriure:Dans l'article <fb3sl2$p2q$,
Antoine Leca écrit:En news:46d3494e$0$30659$,
Stephane Legras-Decussy va escriure:pour que ça fonctionne elle est déclarée comme ça :
void mafonct(unsigned char * s);
Hmmm. Bin voilà, je crois bien que cela ne fonctionne pas,
justement. En tous cas, cela ne réussira pas à afficher correctement
unsigned char test[8] = "123 abc!"
unsigned char test2[8] = "123 abc!"
(ou alors la fonction est douée de pouvoirs magiques, du genre elle
sait que la chaîne fait toujours 8 caractères...)
Dans test2, la chaîne ne fait que 3 caractères, donc aucun problème.
Tu as trop élagué. Je reprends donc le texte qui a disparu (avec ma prose,
pour bien comprendre où se situe le problème) :
::> j'ai fait une fonction qui est capable
::> d'afficher correctement (en openGL) une chaine
::> du code ascii complet jusqu'à 255.
::
:: Mmm. Es-tu certain ? Le code ASCII s'étendant de 0 à 127, l'affichage
:: du caractère de code 0 en C est un peu sportif et demande d'utiliser
:: un type spécial pour représenter les chaînes, à savoir un tableau de
:: char _et_ une indication de la longueur; par contre, la manière de
:: déclarer le type de base, signé ou non signé ou rien n'est pas
:: importante.
Et je maintiens : dans ce contexte-là, le tableau teste2 contient une chaîne
de 8 caractères « ascii complet ».