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