コンパイル処理

2660 ワード

1. C++ “#”
「#」は命令で修飾され、コンパイル時に使用されます.
2.# include
1.と「xxx」
  • <>C++独自のライブラリincludeを検索するディレクトリ
  • 「xxx」優先検索プロジェクトディレクトリが見つかりません.C++ライブラリ
  • を検索します.
    2.「xxx」と「xxx.h」
  • 「xxx」標準C++ライブラリ、ヘッダファイルには*はありません.h、18個のCライブラリ*を保持する.h,参照方法はネーミングスペースusing namespace stdを用いる.
  • 「xxx.h」以前はライブラリを実行していましたが、ヘッダファイルはすべて*.h
  • コンパイル時にシステムはxxxかxxxかによって決まる.h対応する関数ライブラリ
  • を自動的に選択する
  • #inclde"iostream"#include"math.h"エラー
  • をブレンドできません.
    3.#defineと#undef
  • 定数の定義:#define PI 3.14 C++
  • の代わりにconstを使用
  • パラメータ付きマクロ:C++inline
  • の代わりにインライン関数を使用
  • #undefは、#defineによって定義マクロ
  • を削除する.
    4.条件コンパイル命令
    定数式が0以外の場合
    #if      1
    //
    #elif      2
    //
    #else
    //
    #endif
    
    //int i; i      
    #ifdef    
    //
    #else
    //
    #endif
    
    #ifndef    
    //
    #else
    //

    5.definedオペレータ
    definedはコマンドではなくオペレータです
    //    
    #ifndef    
    #define    
    #endif
    
    #if ! defined(   )
    #define    
    #endif

    6.コンパイル処理例
    xcodeは先頭ファイルのCPPファイルを作成し、自動的にFile 1を生成する.h
    #ifndef __TestCpp__File1__
    #define __TestCpp__File1__
    
    #include <stdio.h>
    
    #endif

    File 1の場合hは繰り返し含まれ、#ifndef TestCpp__がないFile1 #define TestCpp__File 1#endifは繰り返しコンパイルされ、2回目のコンパイルでエラーが発生します
    7.コンパイルプロセス
    クラスxxを定義します.h point.h、実装クラスxx.cpp point.cpp、プログラム出入りクラスpmain.cpp
    Windows環境
  • point.cppコンパイルpoint.obj
  • pmain.cppコンパイルpmain.obj
  • point.OBjとpmain.OBj合成pmain.exe実行可能ファイル
  • point.cppファイルの変更はpointをコンパイルするだけです.cppはpointを生成する.objでいい、point.hファイルが変更すると#inlude"point.h"のpointを導入する.cpp、pmain.cppは再コンパイルする必要があります.