ifdef, ifndef, if的用法隨筆

2021-09-08 23:43:00 字數 1246 閱讀 8392

#ifdnef,#ifdef,#if的用法簡析

#ifdnef,#ifdef,#if都是用於防止重複編譯的命令。

對於處理程式中提供了條件編譯的功能。

常用的預處理命令介紹如下:

一:#include [ **.h]

指定的檔案(file)插入到指令所在位置的**處。通常用於包含標頭檔案,是**可以利用在別處定義的內容。

二:#define [key] [key_value]

制定鍵(key)的每次出現都用key_value替換。

注意:#define(即巨集定義)採用的是「傻瓜式」的替換,因此它往往很危險。在c++中採用const來定義常量,實現了與#define相同的功 能,而且功能要比#define強大的多。const在定義常量時可以指定常變數的型別。

三:#ifdef 識別符號

程式段1

#else

程式段2

#endif

它的功能是:如果識別符號為真,則操作(或是執行,或是把程式**在預處理過程中插入到#include指定的位置)程式段一;否則執行程式段2。此時程式在編譯時為二選一編譯

注意:#else部分可以沒有。

四:#ifndef 識別符號

程式段1

#endif

它的功能是:若識別符號還沒有被定義,即識別符號為假,則操作程式段一(即#ifndef 和 #endif之間的程式段)。

防止檔案重複包含的方法如下:

定義乙個class.**件,此檔案的功能是:宣告使用者自定義的類。

定義乙個class.cpp檔案,此檔案的功能是:定義使用者自定義的類,即在此檔案中把每個類中的成員函式的功能給實現了。

定義乙個main.cpp檔案,此檔案為主函式所在的檔案,即程式的入口檔案。

分別在class.cpp和main.cpp檔案中包含class.**件,為了防止class.**件被重複包含,可以在class.h中這樣寫**:

#ifndef 識別符號

#define 識別符號

程式段#endif

這樣一來:當在

class.cpp和main.cpp檔案中第一次包含class.h標頭檔案時識別符號未被定義,此時,預處理程式會把「#ifndef 識別符號」和「#endif」之間的**全部插入到#includes 所在的位置。當class.h被第二次包含的時候,識別符號已經被定義,故此時會跳過「#ifndef 識別符號」和「#endif」之間的**,從而避免了重複包含。

注意:在避免重複包含時的「識別符號」一般用標頭檔案的名字,其中的「逗點」用「下劃線」代替。

jquery ui datepicker的用法講解

1 先在頁面引入相關的js,注意引入順序不能錯 jquery 1.4.2.min.js jquery ui.min.js jquery.ui.datepicker.min.js jquery.ui.datepicker zh cn.min.js jquery.ui.datepicker fr.min...

PreferenceActivity 的用法總結

第一步 定義activity 繼承 preferenceactivity 使用addpreferencesfromresource r.xml.preferences 顯示 xml 第二步 編寫preferences xml檔案儲存再 res xml目錄下 xml version 1.0 encod...

用類的形式用鍊錶排序

這裡為了簡單突出類,鍊錶,我沒有封裝,假定兩個鍊錶已經排好序了,位於表頭的數子是最小的數字,然後從小到大依次排列,函式返回乙個新的鍊錶的表頭的指標。新鍊錶包含原來兩個鍊錶的所有的節點,而且同樣按從小到大的順序排列。如下 nicai.h namespace linkedlistofclasses ni...