Latest web development tutorials

C typedef

linguaggio C fornisce untypedef parole chiave, è possibile utilizzarlo per prendere un nuovo nome per il tipo.L'esempio seguente definisce unaBYTE termine è un singolo numero di byte:

typedef unsigned char BYTE;

Dopo questa definizione tipo, può essere usato come un identificatore BYTEunsigned char abbreviazione quali:

BYTE  b1, b2;

Per convenzione, la definizione sarà capitalizzata lettere allo scopo di avvisare l'utente a digitare un nome simbolico è un'abbreviazione, ma è anche possibile utilizzare le lettere minuscole, come segue:

typedef unsigned char byte;

È inoltre possibile utilizzaretypedef per i tipi di dati personalizzati a prendere un nuovo nome per l'utente.Ad esempio, è possibile utilizzare il typedef struttura per definire un nuovo tipo di dati, e quindi utilizzare questo nuovo tipo di dati per definire la struttura delle variabili dirette, come segue:

#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;
}

Quando il codice di cui sopra è compilato ed eseguito, produce i seguenti risultati:

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

typedef vs #define

direttiva C# define è utilizzato per definire un alias per una varietà di tipi di dati, e typedefsimili, ma hanno le seguenti differenze:

  • typedef solo nomi simbolici per typedef,#define possono non solo definire il tipo di alias, ma anche definire un alias per il valore, per esempio, è possibile definire 1 ONE.
  • typedef viene eseguita dal compilatore interpretato,#define viene effettuata dal pre-elaborato dal compilatore.

Qui è l'uso più semplice di # 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;
}

Quando il codice di cui sopra è compilato ed eseguito, produce i seguenti risultati:

Value of TRUE : 1
Value of FALSE : 0