複合型と関連するコンパイラ

1.カスタム・タイプ

  typedefは:

    構文:typedefを宣言、それ一種変数の型の別名のことです。//変数宣言文。

  typedefとの#defineの違い:

    1)異なる構文。

    2)の#defineが交換されていないtypedefは、純粋に代わり、カスタムタイプがあります。

    3)名前、#はtypedefの_tは、一般的に端に小文字を使用し、表現する文字大文字一般的な使用を定義します。

    4)のtypedefは複合型ではなく、マクロ定義を定義することができます。

2.構造:これで変数の型は、この変数はデータタイプに対応する複数のデータを有することになるので、データの種類は、複数の複合型に合わせました。

  1)フォーマット:構造体の学生{

      int型NUM;

      文字名[20]。

      ...

      }。

  宣言型の2)構造

    A。変数のような一般的なステートメントを使用して

    構造体の学生{

      文字名[20]。

      int型NUM;

      }。

    構造体の学生ST;

    B。それは、変数宣言したのと同じ時間では、(共通)から生まれたことができます

    構造体の学生{

      int型NUM;

      文字名[20]」

      } ST。

    C。構造が匿名構造体である複数の構造、

    構造体の学生{

    int型NUM;

    文字名[20]。

    構造体{

      int型;

      文字B;

      } TT。

    }

  可変構造3)動作

    直接名前で構造内の要素へ。アクセス

      フォーマット:そのよう:. St.nameなどの要素名構造変数名、

    B。アドレス構成要素によってアクセス

      構造体の学生* SP; //構造体へのポインタを定義します

      SP-> NUM = 100; .num(* SP)に相当します。

    C。他のタイプと同様の残りの動作

  初期化4)構造

    アレイの割り当てと同様に方法、直接{}ラップによって複数のデータ、及び注文入力されたコンテンツを埋めます。

    B.値は、それらの1つまたは複数に割り当てることができます。

    名前が、後で配列に従って割り当てられた名前を指定されていない場合、C。、特定の要素名の割り当てを指定(数値は順不同であってもよいです)。

  構造5)割り当て

    通常の変数、直接割り当てと。

  サイズ6)の構造

    それが作成された構造、メモリ配置。

    計算方法:第一の要素の数である最大サイズを見つける(値キャップシステム32は、64バイトが8で、4バイト)

        A。ために、メモリを分割します。

        B。アプリケーションを整列させるために、メモリ素子の最大サイズは、次のとおり。

        スペースの残りは一つの要素を下に置くには十分でない場合は、C。、それは、新しいスペースを開くこの十分ではないスペースをスキップします。

        最後のメモリの空の終わりがある場合D.は、メモリの構造に組み込まれます。

3.ユニオン/組合連邦

  一般的なボディを持つすべての文法構造と同様に、例:

  労働組合のテスト{

     int型;

     文字B;

      }

  関数呼び出し、労働組合の引数が渡された場合は、アドレスの種類を選択せず​​に通過しました。

  一般的なボディが解決しようとする問題点:種類以上の使用。

4.列挙定数

  特徴:均一なデータエイリアスの同じタイプの様々な。

  フォーマット:enmu enumの名前

        列挙部材1,2 ...}列挙部材

  。ではC、低レートで使用される列挙型は、列挙型の名前を書く必要がないように最適化されています。

  名前が整数定数である後に内部B。列挙メンバー。

  あなたは+1値の割り当ての各メンバーの形式で列挙メンバーを初期化しない場合は、C。、最初のゼロから初期化されていません。

  D。列挙型メンバーが一定である、それは彼に割り当てを与えることはできません。

  e.switch文は、ケースのXXXを列挙定数を使用することができます。

5.#は(単なる置き換え)マクロを定義します

  フォーマットます。#define名内容

  マクロ機能:の#define関数名(パラメータリスト)({含量;})

  注意:

    パラメータリストAなしマクロ機能データ型。

    B。ただ、純粋交換。

    Cマクロ返す関数の最後の式の値。

    D。新しいスタックを開きませんが、それを置き換えるために、純粋に言及します。

  短所:

    。マクロ機能誤ってプログラムのロジックを破壊した場合、エラーの原因を見つけることは困難である、貧しい人々の互換性は、それが一般的に簡単なマクロ機能を定義されていません。

6.準備ステートメント

  #で始まる。文

  B。最初のステップのGCCコンパイラを(削除する)開始されたでは、速度はプログラムには影響しません。

  注意:

    治療前から。Aフレーズは、あなたが複数行にすることはできません、行することができます。

    B。名前は、一般的に資産計上されます。

    内容があまりにも多くの場合、C。、我々は統合の行の内容に追いつくために、次の行の内容を\使用することができます。

7.ヘッダファイル:各Declareステートメントは、.hの最後に特別なファイルをまとめます。

  ヘッダファイルの内容:

    。準備ステートメント

    B。Declareステートメント関数宣言、型宣言

  道のヘッダファイルをインポートします:  

    書式#include <ヘッダーの.h>システム環境で探して、システムはヘッダーファイルを追加するには、このようなものが付属しています

    #include「ヘッダの.h>は現在のシステムを見つけることがない場合にのみ、追加されるローカルのヘッダファイルを探しています。

  標準表記ヘッダファイル:

    _FUNC_HEAD_H #ifndefのヘッダファイル#ifndefの現在のマクロ

    マクロの#defineの#defineファイルの現在のヘッド_FUNC_HEAD_H

    ヘッダ・ファイルの内容

    #endifの

8.条件付きコンパイル文(共通):対応するコードを保持して選択する、等価の残りの部分はコメント。

    (1は、次にステートメント上で実行される、文0実行されるB)の#if 1

    A;

    #そうしないと

    B;

    #endifの

 

    #iindef

    #そうしないと

    #endifの

 

  

おすすめ

転載: www.cnblogs.com/smallqizhang/p/12369767.html