首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

C++ 頭檔防重複定義失效原因:變數定義置於頭檔導致多重定義錯誤

     編輯:程式設計綜合問答

在 head.h 中直接定義變數 int ab = 0;,即使有防護巨集 #ifndef HEAD_H,當多個 .cpp 檔包含此頭檔時,每個編譯單元都會產生一個 ab 的定義,連結階段報重複定義錯誤。

正確做法

頭檔僅宣告:

// head.h
#ifndef HEAD_H
#define HEAD_H
extern int ab; // 僅宣告
#endif

在某一個 .cpp 檔定義:

// main.cpp 或其他單一 cpp
#include "head.h"
int ab = 0; // 定義

這樣所有檔案共用同一個 ab 實體,避免重複定義。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved