如果我做了以下內容:包括逆天的#ifndef的#define語句預處理
dConst.hpp
const int POWER_LEVEL = 9001;
genPower.hpp
#include "dConst.hpp"
#ifndef GENPOWER_HPP
#define GENPOWER_HPP
const int GENERATOR[1] = { POWER_LEVEL };
#endif
我結束對於任何使用該生成代碼的代碼都會收到鏈接器錯誤數組常量。
但是,如果我切換#include "dConst.hpp"
的代碼塊:
#ifndef GENPOWER_HPP
#define GENPOWER_HPP
它的工作原理...
我是否濫用#ifndef
的力量?
這是有效的* const *聲明在C++中有內部鏈接。包含警衛不應該禁止鏈接器錯誤。什麼編譯器/鏈接器產生這個錯誤?鏈接器錯誤實際上是什麼樣的? –
@HansPassant我碰巧在當時使用Visual Studio 2012編譯器/鏈接器 –