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

2021-10-04 05:21:00 字數 807 閱讀 5063

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

原創xr_zy1110 最後發布於2016-04-14 17:35:54 閱讀數 4849  收藏

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

指令             用途

#                  空指令,無任何效果

#include     包含乙個源**檔案

#define       定義巨集

#undef        取消已定義的巨集

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

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

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

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

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

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

一、檔案包含

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

#ifndef _my_h_

#define _my_h_

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

#endif

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

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

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

條件編譯 條件編譯屬於三種巨集定義中的一種,條件指示符的最主要目的是防止標頭檔案的重複包含和編譯,例如 乙個c檔案包含同乙個h檔案多次,如果不加 ifndef巨集定義,會出現變數重複定義的錯誤。指令 用途 空指令,無任何效果 include 包含乙個源 檔案 define 定義巨集 undef 取消...

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這三行 主要作用是 防止該標頭...