Latest web development tutorials

C typedef

Langage C fournit untypedef mots - clés, vous pouvez l' utiliser pour prendre un nouveau nom pour le type.L'exemple suivant définit unBYTE terme est un seul nombre d'octets:

typedef unsigned char BYTE;

Après cette définition de type, il peut être utilisé comme identifiant octetnon signé type charabréviation, tel que:

BYTE  b1, b2;

Par convention, la définition sera capitalisé des lettres afin d'alerter l'utilisateur de taper un nom symbolique est une abréviation, mais vous pouvez également utiliser des lettres minuscules, comme suit:

typedef unsigned char byte;

Vous pouvez également utilisertypedef à des types de données personnalisés pour prendre un nouveau nom pour l'utilisateur.Par exemple, vous pouvez utiliser la structure typedef pour définir un nouveau type de données, puis utiliser ce nouveau type de données pour définir la structure des variables directes, comme suit:

#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 Programming");
   strcpy( book.author, "Nuha Ali"); 
   strcpy( book.subject, "C Programming Tutorial");
   book.book_id = 6495407;
 
   printf( "Book title : %s\n", book.title);
   printf( "Book author : %s\n", book.author);
   printf( "Book subject : %s\n", book.subject);
   printf( "Book book_id : %d\n", book.book_id);

   return 0;
}

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

Book  title : C Programming
Book  author : Nuha Ali
Book  subject : C Programming Tutorial
Book  book_id : 6495407

typedef vs #define

directive C#define est utilisé pour définir un alias pour une variété de types de données, et typedefsimilaires, mais ils ont les différences suivantes:

  • typedef seulement des noms symboliques pour typedefs,#define peut non seulement définir le type d'alias, mais également définir un alias pour la valeur, par exemple, vous pouvez définir 1 ONE.
  • typedef est effectuée par le compilateur interprétéinstruction #define est effectuée par le pré-traité par le compilateur.

Voici l'utilisation simple de #define:

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

   return 0;
}

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

Value of TRUE : 1
Value of FALSE : 0