C語言標頭檔案條件編譯避免重複引用

2021-07-11 05:02:10 字數 1016 閱讀 1130

條件編譯:條件編譯屬於三種巨集定義中的一種,條件指示符的最主要目的是防止標頭檔案的重複包含和編譯,例如:乙個c檔案包含同乙個h檔案多次,如果不加#ifndef巨集定義,會出現變數重複定義的錯誤。

指令             用途

#                  空指令,無任何效果

#include     包含乙個源**檔案

#define       定義巨集

#undef        取消已定義的巨集

#if                如果給定條件為真,則編譯下面**

#ifdef           如果巨集已經定義,則編譯下面**

#ifndef        如果巨集沒有定義,則編譯下面**

#elif             如果前面的#if給定條件不為真,當前條件為真,則編譯下面**

#endif         結束乙個#if……#else條件編譯塊

#error          停止編譯並顯示錯誤資訊

一、檔案包含

為了避免那些只能包含一次的標頭檔案被多次包含,可以在標頭檔案中用編譯時條件來進行控制。例如:

#ifndef _my_h_

#define _my_h_

要包含的內容,比如一些函式宣告,一些結構體定義等。

#endif

二、c語言中,定義自定義庫函式時該如何寫對應的標頭檔案

沒有強制規定,但一般遵循以下原則:

1 功能類似或相關的一組函式寫在同乙個標頭檔案中;

2 標頭檔案命名應簡單,盡量短,但可以通過檔名得知內部函式功能;

3 頭檔名由數字、字母、下劃線組成,不要有空白字元或其它符號;

4 為防止標頭檔案重複引用,或巢狀引用,標頭檔案應使用條件編譯包含;

5 標頭檔案中,應遵循先型別定義,後函式宣告的順序;

6 當頭檔案函式宣告中,用到其它標頭檔案中定義的型別時,在標頭檔案開始處進行引用。

C語言標頭檔案條件編譯避免重複引用

c語言標頭檔案條件編譯避免重複引用 原創xr zy1110 最後發布於2016 04 14 17 35 54 閱讀數 4849 收藏 展開條件編譯 條件編譯屬於三種巨集定義中的一種,條件指示符的最主要目的是防止標頭檔案的重複包含和編譯,例如 乙個c檔案包含同乙個 件多次,如果不加 ifndef巨集定...

C 避免重複包含標頭檔案方法

為了避免同乙個標頭檔案被包含 include 多次,c c 中有兩種巨集實現方式 一種是 ifndef方式 另一種是 pragma once方式。在能夠支援這兩種方式的編譯器上,二者並沒有太大的區別。但兩者仍然有一些細微的區別。方式一 ifndefsomefile h definesomefile ...

標頭檔案如何避免重複宣告

向c語言專案graph1中新增graph2.h這樣乙個標頭檔案。在 clion 中我們會發現,在標頭檔案graph2.h中,會自動生成以下三行 ifndef graph1 graph2 h define graph1 graph2 h part1 endif part2這三行 主要作用是 防止該標頭...