head_file1.h的內容如下:
#ifndef _head_file1_h
#define _head_file1_h
#define max 100
#endif/*** _head_file1_h*/
head_file2.h的內容如下:
#ifndef _head_file2_h
#define _head_file2_h
#define max 200
#endif/*** _head_file2_h*/
test_headfile.cpp的內容如下:
#include
#include"head_file1.h"
#include"head_file2.h"
using namespace std;
int main()
{cout<<"max is "<< max <<".\n"《編譯test_headfile.cpp:g++ -o test_headfile test_headfile.cpp
執行test_headfile結果如下:
max is 200.
.cpp檔案包含的多個標頭檔案中有相同的定義時,以包含的最後乙個標頭檔案為準。
標頭檔案定義變數的問題
這次又犯了標頭檔案定義變數的錯誤問題,關鍵是linux環境下還不報錯!例子如下 在common config.h標頭檔案中定義了如下變數 int channel num 1024 後在檔案中的乙個函式中修改此變數為120,但是退出此函式後,列印出變數的值,竟然依舊是1024。正確的做法是在commo...
ifndef 標頭檔案重複定義
ifndef只能保證重複包含時,只包含一次。但snake.cpp和main.cpp是分別進行編譯的,snake.cpp裡的 define對於main.cpp不起作用。也就是說在編譯main.cpp時,snake.h是第一次包含,因此又有乙個ch,相互鏈結時就會發現重定義。正確的作法應該這樣 1 在s...
C 標頭檔案包含變數時,多重定義問題!
multiple definition of 在標頭檔案中.h中包含有變數定義的時候,一般是想作為全域性變數來使用,但是使用中總是出現multiple definition of的問題,看一下 oracleinfclass.h ifndef oracleinfclass h define oracl...