溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C++編程->預編譯指令小結

發布時間:2020-07-15 09:54:04 來源:網絡 閱讀:260 作者:王孟賢 欄目:移動開發

首先了解一下預編譯函數:

  #include    包含一個源代碼文件
  #define     定義宏
  #undef      取消已定義的宏
  #if         如果給定條件為真,則編譯下面代碼
  #ifdef      如果宏已經定義,則編譯下面代碼
  #ifndef     如果宏沒有定義,則編譯下面代碼
  #elif       如果前面的#if給定條件不為真,當前條件為真,則編譯下面代碼
  #endif      結束一個#if……#else條件編譯塊
  #error      停止編譯并顯示錯誤信


#include小結:

1. #include <iostream.h>和#include <iostream>區別

#include <iostream.h>是老規范,現已經拋棄

#include <iostream>是新規范,使用名稱空間避免名稱沖突。即將所有的定義放在了一個名稱空間std中

 

2. #include <iostream>和#include "iostream"區別

#include <iostream>直接在系統的路徑下查找此頭文件。多是系統的頭文件

#include "iostream"首先在當前目錄查找,如果沒有找到再到系統目錄查找

 

3. 頭文件的多次包含問題

編譯器對每個文件只編譯一次生成一份機器代碼.obj,如果在多個地方包含了同一個頭文件,則會出現多次包含的錯誤,即試圖讓編譯器將此文件編譯多次生成多份機器代碼。

預編譯保護解決此問題。


 #ifdef    #ifndef    #define    #endif 條件編譯小結

    #ifdef DEBUG   // 測試DEBUG是否已經定義
    #ifndef DEBUG // 測試DEBUG是否沒有定義
    #define             // 定義DEBUG
    #endif                // #ifdef或者#ifndef語句結束

    C++中,定義頭文件時,為了避免頭文件被多次引用而造成的重復定義,需要將整個頭文件內容包含在下面的預編譯指令中(假設頭文件為file.h):
    #ifndef FILE_H
    #define FILE_H
    // 頭文件的內容
    #endif


常見的預編譯常量小結

    __plusplus     // 編譯C++程序時編譯器自動定義
    __STDC__    // 編譯C程序時編譯器自動定義
    __FILE__      // 當前編譯的文件名 
    __LINE__      // 當前編譯文件的當前行
    __DATE__    // 編譯文件時的日期 
    __TIME__     // 編譯文件時的時間

    其中,__FILE__與__LINE__在編譯期間是不斷更新的,其他四個變量在編譯期間固定。

   assert()
    C語言定義的預編譯宏,斷言某個表達式為true;若為false,則拋出異常。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

c+
AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女