C - 型定義
C プログラミング言語には、typedef というキーワードが用意されています。 を使用して、型に新しい名前を付けることができます。以下は、用語 BYTE を定義する例です 半角数字用 −
typedef unsigned char BYTE;
この型定義の後、識別子 BYTE を型 unsigned char の省略形として使用できます。 .
BYTE b1, b2;
慣例により、これらの定義には大文字が使用され、タイプ名が実際には記号の略語であることをユーザーに思い出させますが、次のように小文字を使用できます-
typedef unsigned char byte;
typedef を使用できます ユーザー定義のデータ型にも名前を付けます。たとえば、構造体で typedef を使用して新しいデータ型を定義し、そのデータ型を使用して次のように構造体変数を直接定義できます-
ライブデモ#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; }
上記のコードをコンパイルして実行すると、次の結果が生成されます −
Book title : C Programming Book author : Nuha Ali Book subject : C Programming Tutorial Book book_id : 6495407
typedef と #define
#define typedef と同様に、さまざまなデータ型のエイリアスを定義するためにも使用される C ディレクティブです。 ただし、次の違いがあります-
- <リ>
typedef #define の場合にのみ、型に記号名を付けることに制限されています 値のエイリアスを定義するためにも使用できます。q.、1 を ONE などとして定義できます。
<リ>typedef 解釈はコンパイラによって実行されますが、#define ステートメントはプリプロセッサによって処理されます。
次の例は、プログラムで #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; }
上記のコードをコンパイルして実行すると、次の結果が生成されます −
Value of TRUE : 1 Value of FALSE : 0
C言語