2015-11-05 32 views
1

一個結構,我想有這樣的功能的結構:如何創建一個「靜態」變量在C

結構

  • 成員1(struct的每個實例都有這種自身價值)

  • 靜態成員(每結構這股成員)

我我知道static關鍵字不會這樣做。 我的問題是,我該如何模仿這種行爲?

我可以創建一個指向全局變量的成員嗎?

有沒有其他更好的方法來做到這一點?

+4

如果該成員共同所有'structs'爲什麼把它作爲一員? –

+0

我不確定你可以,它不是面向對象的。你不能在C中執行'struct :: static_member'。 – SomethingSomething

+0

檢查這個線程:http://stackoverflow.com/questions/6013373/c-usage-of-static-within-a-struct – SomethingSomething

回答

3

與C++中可以有靜態數據成員的結構不同,C結構體沒有這樣的結構。

因爲這是任何人都可以使用一個共同的價值,只是聲明它作爲一個全球性的:

int my_struct_common_val = 42; 

struct my_struct { 
    ... 
}; 
+1

如果這是在一個頭文件中,那麼你將需要使用'extern int my_struct_common_val;'定義在一個'.c'文件中 –

相關問題