検索
  • サインイン
  • サインアップ
パスワードのリセットが成功しました

興味のあるプロジェクトをフォローし、それらに関する最新ニュースをチェックしてください

Cのtypedef

コレクション 205
リーディング 91693
更新時間 2016-09-11

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 ProgrammingBook  author : Nuha AliBook  subject : C Programming TutorialBook  book_id : 6495407

typedef vs #define

#defineは、typedefと同様に、さまざまなデータ型のエイリアスを定義するために使用されるCディレクティブですが、次の点で異なります:

  • typedef型のシンボリック名の定義に限定されますが、#define は型のエイリアスだけでなく、数値のエイリアスも定義できます。たとえば、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 : 1Value of FALSE : 0
ホットAIツール
Undress AI Tool
Undress AI Tool

脱衣画像を無料で

AI Clothes Remover
AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undresser.AI Undress
Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

Stock Market GPT
Stock Market GPT

AIを活用した投資調査により賢明な意思決定を実現

人気のツール
メモ帳++7.3.1
メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版
SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6
ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版
SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)