On 8 juin, 08:29, Pierre Maurette wrote:Bonjour,
A partir de ça:
typedef uint8_t pixelRGBA_word[4];
typedef uint8_t pixelRGB_word[3];
typedef uint8_t pixelNG_word[1];
typedef pixelNG_word pixel_word;
Un commentaire en passant, je trouve que c'est une tres mauvaise
pratique de faire un typedef d'un tableau, meme de taille fixe. La
semantique de passage par valeur "naturelle" devient une semantique
par reference sans prevenir. De plus tu ne pourra pas retourner des
variables de ce type. Pourquoi ne pas mettre les tableaux dans des
structures?
On 8 juin, 08:29, Pierre Maurette <maurettepie...@wanadoo.fr> wrote:
Bonjour,
A partir de ça:
typedef uint8_t pixelRGBA_word[4];
typedef uint8_t pixelRGB_word[3];
typedef uint8_t pixelNG_word[1];
typedef pixelNG_word pixel_word;
Un commentaire en passant, je trouve que c'est une tres mauvaise
pratique de faire un typedef d'un tableau, meme de taille fixe. La
semantique de passage par valeur "naturelle" devient une semantique
par reference sans prevenir. De plus tu ne pourra pas retourner des
variables de ce type. Pourquoi ne pas mettre les tableaux dans des
structures?
On 8 juin, 08:29, Pierre Maurette wrote:Bonjour,
A partir de ça:
typedef uint8_t pixelRGBA_word[4];
typedef uint8_t pixelRGB_word[3];
typedef uint8_t pixelNG_word[1];
typedef pixelNG_word pixel_word;
Un commentaire en passant, je trouve que c'est une tres mauvaise
pratique de faire un typedef d'un tableau, meme de taille fixe. La
semantique de passage par valeur "naturelle" devient une semantique
par reference sans prevenir. De plus tu ne pourra pas retourner des
variables de ce type. Pourquoi ne pas mettre les tableaux dans des
structures?
J'aurais aimé quelque chose d'utile, genre règle de nommage pour les
types typedef-és malgré l'opposition de l'Enseignant. C'est pourtant
ici que j'avais appris que le suffixage par _t était *très* mal.
J'aurais aimé quelque chose d'utile, genre règle de nommage pour les
types typedef-és malgré l'opposition de l'Enseignant. C'est pourtant
ici que j'avais appris que le suffixage par _t était *très* mal.
J'aurais aimé quelque chose d'utile, genre règle de nommage pour les
types typedef-és malgré l'opposition de l'Enseignant. C'est pourtant
ici que j'avais appris que le suffixage par _t était *très* mal.
Le Fri, 08 Jun 2007 21:27:26 +0200J'aurais aimé quelque chose d'utile, genre règle de nommage pour les
types typedef-és malgré l'opposition de l'Enseignant. C'est pourtant
ici que j'avais appris que le suffixage par _t était *très* mal.
Pourquoi est-ce très mal ?
Denis Léger (embêté car j'utilise toujours cette notation... que je
trouve commode)
Le Fri, 08 Jun 2007 21:27:26 +0200
J'aurais aimé quelque chose d'utile, genre règle de nommage pour les
types typedef-és malgré l'opposition de l'Enseignant. C'est pourtant
ici que j'avais appris que le suffixage par _t était *très* mal.
Pourquoi est-ce très mal ?
Denis Léger (embêté car j'utilise toujours cette notation... que je
trouve commode)
Le Fri, 08 Jun 2007 21:27:26 +0200J'aurais aimé quelque chose d'utile, genre règle de nommage pour les
types typedef-és malgré l'opposition de l'Enseignant. C'est pourtant
ici que j'avais appris que le suffixage par _t était *très* mal.
Pourquoi est-ce très mal ?
Denis Léger (embêté car j'utilise toujours cette notation... que je
trouve commode)
In article ,
Denis Leger wrote:Le Fri, 08 Jun 2007 21:27:26 +0200J'aurais aimé quelque chose d'utile, genre règle de nommage pour
les types typedef-és malgré l'opposition de l'Enseignant. C'est
pourtant ici que j'avais appris que le suffixage par _t était
*très* mal.
Pourquoi est-ce très mal ?
On rencontre souvent des *_t dans du code utilisateur. Pourquoi donc:
- pas mal de gens programment par mimetisme. Ils ont vu l'utilisation
de typedef xxx foo_t dans du code systeme, et ca leur a paru joli
comme notation.
In article <20070609112121.069196c8.denis.leger@laposte.net>,
Denis Leger <denis.leger@laposte.net> wrote:
Le Fri, 08 Jun 2007 21:27:26 +0200
J'aurais aimé quelque chose d'utile, genre règle de nommage pour
les types typedef-és malgré l'opposition de l'Enseignant. C'est
pourtant ici que j'avais appris que le suffixage par _t était
*très* mal.
Pourquoi est-ce très mal ?
On rencontre souvent des *_t dans du code utilisateur. Pourquoi donc:
- pas mal de gens programment par mimetisme. Ils ont vu l'utilisation
de typedef xxx foo_t dans du code systeme, et ca leur a paru joli
comme notation.
In article ,
Denis Leger wrote:Le Fri, 08 Jun 2007 21:27:26 +0200J'aurais aimé quelque chose d'utile, genre règle de nommage pour
les types typedef-és malgré l'opposition de l'Enseignant. C'est
pourtant ici que j'avais appris que le suffixage par _t était
*très* mal.
Pourquoi est-ce très mal ?
On rencontre souvent des *_t dans du code utilisateur. Pourquoi donc:
- pas mal de gens programment par mimetisme. Ils ont vu l'utilisation
de typedef xxx foo_t dans du code systeme, et ca leur a paru joli
comme notation.
J'ai en tout cas compris le problème, puis-je à l'évenir utiliser sans
souci t_montype plutôt que montype_t ? Ou y a-t-il une convention de
nommage précise ?
J'ai en tout cas compris le problème, puis-je à l'évenir utiliser sans
souci t_montype plutôt que montype_t ? Ou y a-t-il une convention de
nommage précise ?
J'ai en tout cas compris le problème, puis-je à l'évenir utiliser sans
souci t_montype plutôt que montype_t ? Ou y a-t-il une convention de
nommage précise ?
In article ,
Denis Leger wrote:J'ai en tout cas compris le problème, puis-je à l'évenir utiliser
sans souci t_montype plutôt que montype_t ? Ou y a-t-il une
convention de nommage précise ?
Oui, sans probleme. Ca ne rentre pas en collision avec la norme.
Je ne connais pas de convention de nommage "universelle".
In article <20070609165435.e828d199.denis.leger@laposte.net>,
Denis Leger <denis.leger@laposte.net> wrote:
J'ai en tout cas compris le problème, puis-je à l'évenir utiliser
sans souci t_montype plutôt que montype_t ? Ou y a-t-il une
convention de nommage précise ?
Oui, sans probleme. Ca ne rentre pas en collision avec la norme.
Je ne connais pas de convention de nommage "universelle".
In article ,
Denis Leger wrote:J'ai en tout cas compris le problème, puis-je à l'évenir utiliser
sans souci t_montype plutôt que montype_t ? Ou y a-t-il une
convention de nommage précise ?
Oui, sans probleme. Ca ne rentre pas en collision avec la norme.
Je ne connais pas de convention de nommage "universelle".
--{ Marc Boyer a plopé ceci: }--Un commentaire sur le commentaire. Lorsque j'enseigne le C, je deconseille
toujours l'usage de typedef et l'usage de macros (*) aux debutants.
*: pour autre chose que de betes #define VALUE 42
Même un typedef sur des structs ?
Si, pour moi, celui-ci peut être bien, et même souvent,
comment dire, "clarifiant", à condition que le nom soit
bien choisi.
Et _surtout_, de ne pas passer à la déclaration
d'un typedef pour les pointeurs sur la structure "typedéfée"
à l'étape précedente. Pour moi, un pointeur doit *toujours*
rester explicite. Bon, je ne suis pas une référence non
plus, c'est juste que je fonctionne comme ça :-(
--{ Marc Boyer a plopé ceci: }--
Un commentaire sur le commentaire. Lorsque j'enseigne le C, je deconseille
toujours l'usage de typedef et l'usage de macros (*) aux debutants.
*: pour autre chose que de betes #define VALUE 42
Même un typedef sur des structs ?
Si, pour moi, celui-ci peut être bien, et même souvent,
comment dire, "clarifiant", à condition que le nom soit
bien choisi.
Et _surtout_, de ne pas passer à la déclaration
d'un typedef pour les pointeurs sur la structure "typedéfée"
à l'étape précedente. Pour moi, un pointeur doit *toujours*
rester explicite. Bon, je ne suis pas une référence non
plus, c'est juste que je fonctionne comme ça :-(
--{ Marc Boyer a plopé ceci: }--Un commentaire sur le commentaire. Lorsque j'enseigne le C, je deconseille
toujours l'usage de typedef et l'usage de macros (*) aux debutants.
*: pour autre chose que de betes #define VALUE 42
Même un typedef sur des structs ?
Si, pour moi, celui-ci peut être bien, et même souvent,
comment dire, "clarifiant", à condition que le nom soit
bien choisi.
Et _surtout_, de ne pas passer à la déclaration
d'un typedef pour les pointeurs sur la structure "typedéfée"
à l'étape précedente. Pour moi, un pointeur doit *toujours*
rester explicite. Bon, je ne suis pas une référence non
plus, c'est juste que je fonctionne comme ça :-(
*: pour autre chose que de betes #define VALUE 42
Même un typedef sur des structs ?
Si, pour moi, celui-ci peut être bien, et même souvent,
comment dire, "clarifiant", à condition que le nom soit
bien choisi.
C'est aussi mon sentiment, et ça semble idiomatique. Mais
Marc Espie semblait émettre des réserves.
Oui, j'ai vu. Il faut bien entendu que le nom soit bien choisi,
Et _surtout_, de ne pas passer à la déclaration
d'un typedef pour les pointeurs sur la structure "typedéfée"
à l'étape précedente. Pour moi, un pointeur doit *toujours*
rester explicite. Bon, je ne suis pas une référence non
plus, c'est juste que je fonctionne comme ça :-(
A mon sens, si on fait un typedef, c'est pour définir un nouveau
type, un nouvel usage. En effet, si on a juste besoin d'un pointeur,
je conseillerais de faire une struc avec un unique pointeur dedans.
*: pour autre chose que de betes #define VALUE 42
Même un typedef sur des structs ?
Si, pour moi, celui-ci peut être bien, et même souvent,
comment dire, "clarifiant", à condition que le nom soit
bien choisi.
C'est aussi mon sentiment, et ça semble idiomatique. Mais
Marc Espie semblait émettre des réserves.
Oui, j'ai vu. Il faut bien entendu que le nom soit bien choisi,
Et _surtout_, de ne pas passer à la déclaration
d'un typedef pour les pointeurs sur la structure "typedéfée"
à l'étape précedente. Pour moi, un pointeur doit *toujours*
rester explicite. Bon, je ne suis pas une référence non
plus, c'est juste que je fonctionne comme ça :-(
A mon sens, si on fait un typedef, c'est pour définir un nouveau
type, un nouvel usage. En effet, si on a juste besoin d'un pointeur,
je conseillerais de faire une struc avec un unique pointeur dedans.
*: pour autre chose que de betes #define VALUE 42
Même un typedef sur des structs ?
Si, pour moi, celui-ci peut être bien, et même souvent,
comment dire, "clarifiant", à condition que le nom soit
bien choisi.
C'est aussi mon sentiment, et ça semble idiomatique. Mais
Marc Espie semblait émettre des réserves.
Oui, j'ai vu. Il faut bien entendu que le nom soit bien choisi,
Et _surtout_, de ne pas passer à la déclaration
d'un typedef pour les pointeurs sur la structure "typedéfée"
à l'étape précedente. Pour moi, un pointeur doit *toujours*
rester explicite. Bon, je ne suis pas une référence non
plus, c'est juste que je fonctionne comme ça :-(
A mon sens, si on fait un typedef, c'est pour définir un nouveau
type, un nouvel usage. En effet, si on a juste besoin d'un pointeur,
je conseillerais de faire une struc avec un unique pointeur dedans.
Le 08-06-2007, Thierry B a écrit :--{ Marc Boyer a plopé ceci: }--
Si, pour moi, celui-ci peut être bien, et même souvent,
comment dire, "clarifiant", à condition que le nom soit
bien choisi.
C'est aussi mon sentiment, et ça semble idiomatique.
A mon sens, si on fait un typedef, c'est pour définir un nouveau
type, un nouvel usage.
Le 08-06-2007, Thierry B <tth@prout.stex> a écrit :
--{ Marc Boyer a plopé ceci: }--
Si, pour moi, celui-ci peut être bien, et même souvent,
comment dire, "clarifiant", à condition que le nom soit
bien choisi.
C'est aussi mon sentiment, et ça semble idiomatique.
A mon sens, si on fait un typedef, c'est pour définir un nouveau
type, un nouvel usage.
Le 08-06-2007, Thierry B a écrit :--{ Marc Boyer a plopé ceci: }--
Si, pour moi, celui-ci peut être bien, et même souvent,
comment dire, "clarifiant", à condition que le nom soit
bien choisi.
C'est aussi mon sentiment, et ça semble idiomatique.
A mon sens, si on fait un typedef, c'est pour définir un nouveau
type, un nouvel usage.
Le 08-06-2007, Thierry B a écrit :--{ Marc Boyer a plopé ceci: }--
[...]Si, pour moi, celui-ci peut être bien, et même souvent,
comment dire, "clarifiant", à condition que le nom soit
bien choisi.
C'est aussi mon sentiment, et ça semble idiomatique.
J'ai constaté que je finissais par admettre la pertinence de
pratiquement toutes les "règles de puriste". La défiance absolue envers
le typedef fait exception, y compris le typedef de pointeur. A moins
que ce ne soit pas vraiment une règle de puriste.
Par exemple un objet qui est fondamentale un pointeur, c'est à dire que
à priori l'application ne le déréférencera pas.
J'ai en tête une liste
(par langue) de listes de mots (de const char*). On arrivera donc sans
pour cela que l'analyse soit pourrie à un const char***.
Avec le
premier '*' n'entrant à mon sens pas dans la hiérarchie des deux
autres. Le typedef du const char* va alléger tout ça. Et accessoirement
permettre des déclarations sur la même ligne si on aime (quoi que les
puristes...).
A mon sens, si on fait un typedef, c'est pour définir un nouveau
type, un nouvel usage.
Quand j'ai appris le C, j'avais l'habitude de faire de petits
programmes d'illustration de chaque nouvelle notion. Comme quelqu'un
qui préparerait un cours, mais dans mon cas il s'agissait surtout de
nettoyer le bout de test et de l'archiver, pour ne pas errer à chaque
fois sur le même problème.
Un jour, je me penche sur le typedef. "Le typedef définit un nouveau
type...". OK, j'ai compris:
typedef unsigned age_t;
typedef unsigned categ_t;
/* ... */
age_t x = 49;
categ_t y = 0;
/* ... */
x = y;
Pour montrer l'utilité du warning que j'attends toujours.
Le 08-06-2007, Thierry B <tth@prout.stex> a écrit :
--{ Marc Boyer a plopé ceci: }--
[...]
Si, pour moi, celui-ci peut être bien, et même souvent,
comment dire, "clarifiant", à condition que le nom soit
bien choisi.
C'est aussi mon sentiment, et ça semble idiomatique.
J'ai constaté que je finissais par admettre la pertinence de
pratiquement toutes les "règles de puriste". La défiance absolue envers
le typedef fait exception, y compris le typedef de pointeur. A moins
que ce ne soit pas vraiment une règle de puriste.
Par exemple un objet qui est fondamentale un pointeur, c'est à dire que
à priori l'application ne le déréférencera pas.
J'ai en tête une liste
(par langue) de listes de mots (de const char*). On arrivera donc sans
pour cela que l'analyse soit pourrie à un const char***.
Avec le
premier '*' n'entrant à mon sens pas dans la hiérarchie des deux
autres. Le typedef du const char* va alléger tout ça. Et accessoirement
permettre des déclarations sur la même ligne si on aime (quoi que les
puristes...).
A mon sens, si on fait un typedef, c'est pour définir un nouveau
type, un nouvel usage.
Quand j'ai appris le C, j'avais l'habitude de faire de petits
programmes d'illustration de chaque nouvelle notion. Comme quelqu'un
qui préparerait un cours, mais dans mon cas il s'agissait surtout de
nettoyer le bout de test et de l'archiver, pour ne pas errer à chaque
fois sur le même problème.
Un jour, je me penche sur le typedef. "Le typedef définit un nouveau
type...". OK, j'ai compris:
typedef unsigned age_t;
typedef unsigned categ_t;
/* ... */
age_t x = 49;
categ_t y = 0;
/* ... */
x = y;
Pour montrer l'utilité du warning que j'attends toujours.
Le 08-06-2007, Thierry B a écrit :--{ Marc Boyer a plopé ceci: }--
[...]Si, pour moi, celui-ci peut être bien, et même souvent,
comment dire, "clarifiant", à condition que le nom soit
bien choisi.
C'est aussi mon sentiment, et ça semble idiomatique.
J'ai constaté que je finissais par admettre la pertinence de
pratiquement toutes les "règles de puriste". La défiance absolue envers
le typedef fait exception, y compris le typedef de pointeur. A moins
que ce ne soit pas vraiment une règle de puriste.
Par exemple un objet qui est fondamentale un pointeur, c'est à dire que
à priori l'application ne le déréférencera pas.
J'ai en tête une liste
(par langue) de listes de mots (de const char*). On arrivera donc sans
pour cela que l'analyse soit pourrie à un const char***.
Avec le
premier '*' n'entrant à mon sens pas dans la hiérarchie des deux
autres. Le typedef du const char* va alléger tout ça. Et accessoirement
permettre des déclarations sur la même ligne si on aime (quoi que les
puristes...).
A mon sens, si on fait un typedef, c'est pour définir un nouveau
type, un nouvel usage.
Quand j'ai appris le C, j'avais l'habitude de faire de petits
programmes d'illustration de chaque nouvelle notion. Comme quelqu'un
qui préparerait un cours, mais dans mon cas il s'agissait surtout de
nettoyer le bout de test et de l'archiver, pour ne pas errer à chaque
fois sur le même problème.
Un jour, je me penche sur le typedef. "Le typedef définit un nouveau
type...". OK, j'ai compris:
typedef unsigned age_t;
typedef unsigned categ_t;
/* ... */
age_t x = 49;
categ_t y = 0;
/* ... */
x = y;
Pour montrer l'utilité du warning que j'attends toujours.