のヘッダーのみのグローバル変数を初期化する方法:私はこのようになりますヘッダのみのライブラリで定義された機能を持っているC
inline bar **foo_ptr() {
static bar *value = NULL;
return &value;
}
これは、それを定義せずにグローバル変数を初期化する私のハック方法です* .cファイルに保存します。
これは(#defineインライン__inlineの後に)VS2010でうまくコンパイルされますが、MinGWでコンパイルしようとすると多重定義の怒りに腹を立てて死にます。これは私を非常に悲しくしています。
AFAIK、私はちょうどstatic inline
関数を使用することはできません。なぜなら、この状況では、非常に悪いことです。
本当にこのキーワードを使用してこの作業を行う必要がありますか?私はそれを完全に間違っているのだろうか?ヘッダーのみのグローバル変数をNULLに初期化する別の方法はありますか?
私はinitメソッドから遠ざかっています。
ありがとう:D
_Why_を解決しますが、ヘッダーのみのグローバル変数が必要なのでしょうか?あなたの職場には、使用を許可されているCファイルの数を制限するいくつかの企業標準がありますか? :-) – paxdiablo
グローバル変数を使用するだけではどうですか?それは本質的にあなたがやっていることです。本当に難しいのです。 –
@paxdiablo:はい。私は非常に小さな図書館で働いています。そして、ユーザーが1つの変数に対して余分なCファイル_just_をコンパイルするような浪費のようです。その意味で、私の職場(My House)には、このプロジェクトの企業(My House Inc.)標準(My House Standard)があり、Cファイルの数をゼロに制限しています。 :D – YellPika