標頭檔案定義變數的問題

2021-06-03 12:37:46 字數 402 閱讀 4310

這次又犯了標頭檔案定義變數的錯誤問題,關鍵是linux環境下還不報錯!例子如下:

在common_config.h標頭檔案中定義了如下變數:

int channel_num = 1024;

後在檔案中的乙個函式中修改此變數為120,但是退出此函式後,列印出變數的值,竟然依舊是1024。

正確的做法是在common_config.h中宣告這個變數:

extern int channel_num

在.cpp檔案的某個地方,對其進行定義:

int channel_num=1024;

這樣在某個函式中修改此變數的值後,就不會出現上面的問題。

標頭檔案中定義變數

在標頭檔案中定義了乙個變數,若另乙個檔案再 int 變數名 則會再產生乙個相同變數的定義,在linux環境中編譯時會發生如 menu.o sbss 0x0 multiple definition of is refresh living time thread created main.o sbss...

解決標頭檔案定義變數的問題,巧用巨集定義 續)

繼昨天遇到的標頭檔案定義變數問題,總得要想辦法解決啊,不然xcode沒法除錯啊 改還得要從頭檔案改起,想到符號重複問題是因為多個.c都包含了這個標頭檔案,都定義了一次,所以鏈結就不知道要哪乙個了啊,常見的解決辦法不就是加extern唄。但是這個工程師所有的都是包含的乙個 萬能 標頭檔案,所以要是加了...

標頭檔案中用static定義全域性變數的問題

cocos3.13前的版本中,一些全域性變數使用static 定義,研究了static定義全域性變數的優缺點。例如定義下面的標頭檔案 pragma once static int globle 0 static int image 省略 在其他原始檔中,引用cocos.h標頭檔案後,每個原始檔都會儲...