typedef VS#define-C言語のキーワードとC命令



Typedef Vs Define Keywords



******************************************* typedef ****** ************************************************** *********

************************************************** ************************************************** ****************

C言語は提供しますtypedefキーワード。これを使用して、タイプに新しい名前を付けることができます。



#include #include 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, 'Runoob') strcpy( book.subject, 'programming language') book.book_id = 12345 printf( 'Book Title: %s ', book.title) printf( 'Book Author: %s ', book.author) printf( 'Book category: %s ', book.subject) printf( 'Book ID: %d ', book.book_id) return 0 }

このタイプを定義した後、識別子BYTEをタイプとして使用できます。 unsigned char たとえば、の略語:



#include #define TRUE 1 #define FALSE 0 int main( ) { printf( 'TRUE value: %d ', TRUE) printf( 'FALSE value: %d ', FALSE) return 0 }

使用することもできますtypedefに来て ユーザー定義のデータ型 新しい名前を取ります。たとえば、typedefを使用して構造を定義できます 新しいデータ型名 そしてこれを使う 新しいデータ型 来て 構造変数を直接定義する 、次のように:

typedef unsigned char BYTE

************************************************** **************** ********************************** **************** **********

************************************************** ************************************************** ****************



#defineさまざまなデータ型のエイリアスを定義するために使用されるCコマンドであり、typedef似ていますが、以下の点で異なります

BYTE b1, b2

説明:

ここで、TRUEは、1に置き換えられるシンボルとして定義されています。trueの代わりにTRUEを使用する理由は、C言語に共通の規則があるためです。#defineステートメントの式はすべて大文字です。

******************************************* typedef VS #define *** *********************************************

************************************************** ************************************************** ****************

#defineさまざまなデータ型のエイリアスを定義するために使用されるCコマンドであり、typedef同様ですが、次の点で異なります。

  • typedef タイプのシンボリック名の定義のみに限定され、 #define タイプだけでなく値にもエイリアスを定義できます。たとえば、1をONEとして定義できます。
  • typedef コンパイラによって解釈され、 #define ステートメントはプリコンパイラーによって処理されます。
#defineさまざまなデータ型のエイリアスを定義するために使用されるCコマンドであり、typedef同様ですが、次の点で異なります。