Typedef et string

Fermé
1999-pythagore - 10 nov. 2019 à 10:55
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 - 12 nov. 2019 à 14:36
bonjour, tout d'abord merci de porter attention à ma question.
Je sais qu' en langage c:
#define sert à spécifier les macro/lettres i.e nom = valeurs
typedef s'exprime de la manière suivante; typedef déclaration de variable.

-j'ai importer la bibliothèque string avec #include<string.h>
-j'ai définit lassets+1 et chaussures

or je voudrais définir le type string comme un tableau de lassets+1 entiers sur 1 octet. sachant que j'ai auparavant définit lassets+1 avec le define.
donc j'ai écrit typedef string tab[lassets+1] est ce correct svp je n'en suit pas sûr ?

Par ailleurs, je voudrais définir le type tableau comme un tableau de chaussures de string sachant que chaussures a été définit auparavant avec le define.
Ici, je n'ai aucune idée pouvez vous m'aider svp ?


merci d'avance




Configuration: Windows / Chrome 78.0.3904.87

3 réponses

yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476
Modifié le 10 nov. 2019 à 14:17
bonjour,
ce que tu as écrit (typedef string tab[lassets+1]) définit un nouveau type, nommé tab, comme un tableau de lassets+1 string.
si tu veux définir le type string comme un tableau de lassets+1 entiers sur 1 octet, tu dois te répondre à la question suivante:
comment déclarer une variable nommée string, étant un tableau de lassets+1 entiers sur 1 octet?
quand tu auras trouvé la réponse, il te sera facile d'écrire le typedef.
1
1999-pythagore
10 nov. 2019 à 15:15
ma réponse serait:

string = int tab[LASSETS+1]
ou
string = char tab[LASSETS+1]
0
yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476
10 nov. 2019 à 15:17
ne devrais-tu pas d'abord faire des exercices plus simples?
dans quel contexte fais-tu cela? consultes-tu une documentation?
0
1999-pythagore
10 nov. 2019 à 15:26
J'ai déjà effectuer des exercice plus simples, je connais déjà tous ce qui tourne autour d ela programmation en C du genre boucle, pointeurs, structures, makefile. Par contre j'ai quelques dificultées à bien appréhender les tydedef. Ma réponse n'est pas correcte ?
0
tab[LASSETS+1] :tableau de LASSET+1 quelque chose
int tab[LASSETS+1] : tableau de LASSETS+1 entier
char: entier codé sur un octet i.e 8 bits
0
yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476 > 1999-pythagore
10 nov. 2019 à 15:42
quelle est l'instruction en C pour déclarer une variable nommée string, étant un tableau de lassets+1 entiers sur 1 octet?
0
1999-pythagore
10 nov. 2019 à 15:46
typedef int tab[lasset+1] est un tableau de lassets +1 entiers
je ne sais pas comment déclarer cette variable string et normalement pour inclure le type ab dans un octet j'utilise char.
0
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 1 083
Modifié le 12 nov. 2019 à 12:00
Bonjour 1999-pythagore,

Juste un mot additionnel aux remarques des contributeurs à ce fil.

En C, les
typedef
ne servent qu'à créer des alias sur des types existants ou des types définis par l'utilisateur. Ils ne créent pas réellement de nouveaux types.

Sur le plan du style de programmation, à mon sens, les programmeurs C ne devaient en faire un usage que très exceptionnellement, par exemple pour faciliter l'usage de types vraiment complexes, car ils ont l'inconvénient de masquer l'information sur le type réel utilisé.

Un autre usage légitime est pour la définition de types opaques pour le programmeur. Là, l'opacité créée par l'usage du
typedef
est intentionnelle, le programmeur n'étant pas sensé connaître le type réel, car il est utilisé par une bibliothèque qui s'en charge pour lui et le programmeur n'est pas sensé intervenir directement sur les données gérées au travers de ce type : il n'utilise le type opaque qu'au travers des fonctions qui sont mises à sa disposition par la bibliothèque. Un exemple est le "type"
FILE
qui est en réalité un
typedef
sur une structure opaque définie par la bibliothèque standard du C dans stdio.h

http://www.cplusplus.com/reference/cstdio/FILE/

Utiliser un
typedef
pour définir un alias sur un type simple comme un tableau de char avec une certaine dimension ne me paraît pas être une pratique conseillée, à moins qu'il ne s'agisse d'un exercice et que l'on doive répondre à une question théorique d'application d'un cours posée par un enseignant :-)

Dal
0
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 1 083
12 nov. 2019 à 14:36
Sinon, comme tu parles de "chaussures", je supposes que tu parlerais de "lacets" plutôt que de "lassets" ;-)
0