Traduction du mot Type Enregistrement en C
Fermé
slouma
-
Modifié le 28 avril 2017 à 12:24
Dalfab Messages postés 706 Date d'inscription dimanche 7 février 2016 Statut Membre Dernière intervention 2 novembre 2023 - 29 avril 2017 à 16:50
Dalfab Messages postés 706 Date d'inscription dimanche 7 février 2016 Statut Membre Dernière intervention 2 novembre 2023 - 29 avril 2017 à 16:50
A voir également:
- Traduction du mot Type Enregistrement en C
- Traduction photo gratuit - Guide
- Voir mot de passe wifi android - Guide
- Enregistrer en pdf - Guide
- Mot de passe administrateur - Guide
3 réponses
[Dal]
Messages postés
6193
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
4 juillet 2024
1 090
Modifié le 28 avril 2017 à 13:47
Modifié le 28 avril 2017 à 13:47
Salut Slouma,
Lorsque tu déclares une struct en C en faisant
typedef permet juste de créer un alias sur le type créé
Par exemple :
Tu peux aussi déclarer la struct et le typedef en même temps (comme tu semblais vouloir le faire. Il faut alors faire
Bref, c'est une question de choix personnel, de style.
Dans ton cas, tu devrais certainement faire comme ton prof te l'a enseigné.
Cependant, de nombreux programmeurs C préfèrent ne pas abuser des typedef qui masquent la nature réelle de ce qui se cache derrière l'alias.
C'est par exemple très mal vu dans les directives de style du noyau Linux
https://www.kernel.org/doc/html/latest/process/coding-style.html#typedefs
Dal
Lorsque tu déclares une struct en C en faisant
struct Activite { (...) };, tu déclares un type. Dans cet exemple "Activite" est l'étiquette de la struct. Pour déclarer des variables utilisant ce type, tu pourras le faire en écrivant
struct Activite Programmation;,
struct Activiteétant donc le type.
typedef permet juste de créer un alias sur le type créé
struct Activite, permettant de créer un identifiant de remplacement.
Par exemple :
struct Activity { char * name; int is_professional; }; typedef struct Activity Activity; int main(void) { struct Activity programming; Activity siesta; return 0; }
Tu peux aussi déclarer la struct et le typedef en même temps (comme tu semblais vouloir le faire. Il faut alors faire
typedef struct Etiquette { (...) } NomAlias; et l'étiquette devient facultative.
Bref, c'est une question de choix personnel, de style.
Dans ton cas, tu devrais certainement faire comme ton prof te l'a enseigné.
Cependant, de nombreux programmeurs C préfèrent ne pas abuser des typedef qui masquent la nature réelle de ce qui se cache derrière l'alias.
C'est par exemple très mal vu dans les directives de style du noyau Linux
https://www.kernel.org/doc/html/latest/process/coding-style.html#typedefs
Dal
Dalfab
Messages postés
706
Date d'inscription
dimanche 7 février 2016
Statut
Membre
Dernière intervention
2 novembre 2023
101
Modifié le 29 avril 2017 à 16:52
Modifié le 29 avril 2017 à 16:52
Je pense que la conversion est :
// Type List_Activite = ^ Activite (c'est quel langage, du Pascal?) typedef struct Activite *List_Activite; // ça c'est du CÇa dit que List_Activite est un alias de pointeur sur Activite. Mais faire un alias sur un pointeur est non recommandé en C car trompeur. Mais d'autres langages l'imposent.
Modifié le 28 avril 2017 à 16:34
reste maintenant cette déclaration :
est ce que je fais typedef pour traduite le mot Type ?
ou bien il suffit d'ecrire