C typedef

Le langage C fournit le mot-clétypedef, vous pouvez l'utiliser pour donner un nouveau nom à un type. L'exemple suivant définit un terme pour un nombre d'un octetBYTE:

typedef unsigned char BYTE;

Après cette définition de type, l'identifiant BYTE peut être utilisé comme type.unsigned charabréviations, telles que :

BYTE  b1, b2;

Par convention, la définition utilise des lettres majuscules pour rappeler aux utilisateurs que le nom du type est une abréviation symbolique, mais vous pouvez aussi utiliser des lettres minuscules, comme suit :

typedef unsigned char byte;

Vous pouvez également utilisertypedefpour donner un nouveau nom à un type de données défini par l'utilisateur. Par exemple, vous pouvez utiliser typedef sur une struct pour définir un nouveau nom de type de données, puis utiliser ce nouveau type de données pour définir directement des variables de struct, comme suit :

Exemple

#include <stdio.h> #include <string.h> typedef struct Books { char title[50]; char author[50]; char subject[100]; int book_id; } Book; int main( ) { Book book; strcpy( book.title, "C Tutorial"); strcpy( book.author, "Example"); strcpy( book.subject, "Programming language"); book.book_id = 12345; printf( "Book Title : %s\n", book.title); printf( "Book Author : %s\n", book.author); printf( "Catégorie du livre : %s\n", book.subject); printf( "ID du livre : %d\n", book.book_id); return 0; }

Lorsque le code ci-dessus est compilé et exécuté, il produit les résultats suivants :

书标题 : C 教程
书作者 : Example
书类目 : 编程语言
书 ID : 12345

typedef vs #define

#defineest une directive C utilisée pour définir des alias pour divers types de données, ettypedefest similaire, mais ils présentent les différences suivantes :

  • typedefLimité à la définition de noms symboliques pour les types,#defineIl peut non seulement définir des alias pour les types, mais aussi définir des alias pour les valeurs ; par exemple, vous pouvez définir 1 comme ONE.
  • typedefest interprété par le compilateur,#defineL'instruction est traitée par le préprocesseur.

Voici l'utilisation la plus simple de #define :

Exemple

#include <stdio.h> #define TRUE 1 #define FALSE 0 int main( ) { printf( "Valeur de TRUE : %d\n", TRUE); printf( "Valeur de FALSE : %d\n", FALSE); return 0; }

Lorsque le code ci-dessus est compilé et exécuté, il produit les résultats suivants :

TRUE 的值: 1
FALSE 的值: 0
autres extensions