static宣言を複数のソースファイルで共有したいと考え以下のようなプログラムになりました
やはりstaticの共有は無理でしょうか。
リソースファイルの記載内容
static HANDLE hInfoData;
関数と関数1は同じソースファイル
void関数(){
hInfoData = CreateFile(・・・)
}
void関数1(){
関数();
ここではhInfoDataが有効
}
別のソースファイル
リソースファイルをインクルード
void関数2(){
ここではhInfoDataがNULLになる
}
No.3
- 回答日時:
要するにhInfoDataがグローバル変数で、複数のソースファイルで同じ変数として利用できるようにしたい、ってことですよね?
普通にexternを使い、実体を1ファイルだけでグローバルセクションに「HANDLE hInfoData;」と宣言すればいいと思いますけど?
>staticを付けない変数はexternで複数のソースで参照できます、この場合変数の値がいつの間にか空白になるのです、この防止策を教えてください。
いつの間にか空白に「なる」のではなく、いつの間にか空白に「している」のではないでしょうか?
早速の回答、ありがとうございます。
なぜ、変数のフォーカスがサラワレルのか不思議です、このためstaticで解決しています。
プログラムで立ち上げ時に一度だけ初期設定した後は、書き込みはせず読み出すだけなのにです、不思議です!!
No.2
- 回答日時:
リソースファイル?
ヘッダファイルじゃなくて?
回答ありがとうございます。
>リソースファイル?
これは間違っていました、ヘッダーファイルです。
ヘッダーファイル名がリソース.hになっています。
No.1
- 回答日時:
「static宣言を複数のソースファイルで共有したい」がどういうことをしたいのかわからないのですが....
(関数の外で) static を付けて定義した変数はそのコンパイル単位 (ソースファイル) でしか見えないことはわかってますよね?
回答ありがとうございます。
staticはソース固有はわかっていますが、staticな変数を複数のソースで参照したいのです、staticを付けない変数はexternで複数のソースで参照できます、この場合変数の値がいつの間にか空白になるのです、この防止策を教えてください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- C言語・C++・C# スタックフレームの消滅 6 2023/05/20 12:33
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- Java java final 1 2022/06/10 22:49
- C言語・C++・C# const char** p;のとき、free(p)でC4090エラーとなるのはなぜですか 3 2023/03/31 16:28
- C言語・C++・C# C言語 ポインタ 配列 2 2022/06/02 17:29
- C言語・C++・C# c言語の問題です 課題1 (二分探索木とセット) 大きさ size の配列 array を考える。す 2 2023/01/10 21:08
- C言語・C++・C# 宣言する関数の形が決まっている状態で、 str1とstr2の文字列をこの順に引っ付けてstrに保存し 2 2022/05/30 18:21
- Java Java プログラム public class Main { public static void 3 2023/08/10 23:46
- C言語・C++・C# プログラム内から、MIDIファイルの一部分だけを再生する方法 1 2023/02/15 11:08
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C#のクラスをVB.netで使用したい!
-
VB.NETでActiveX(OCXファイル)作成
-
VB.NETで他のプロジェクトで作...
-
VB6で、非表示モジュール(?)の...
-
ソースから参照しているOCXの一...
-
プリコンパイル?
-
libssh2のインクルード
-
コンパイルするときに、ファイ...
-
Visual Studioを使ったフォーム...
-
エラーの原因は?「この関数の...
-
Wingdi.h Windows.h を開くには?
-
同じソースコードなのにバイナ...
-
エントリポイントがDLLから...
-
C言語でのファイルの作成につい...
-
srand48? drand48?
-
ACCESSのEXEを作るのは可能...
-
VB6 exeファイルのプロパティの...
-
static宣言の共有
-
ユーザー名・作成者について(Vi...
-
「ソースファイルが見つかりま...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VB.NETで他のプロジェクトで作...
-
ACCESSのEXEを作るのは可能...
-
コンパイルするときに、ファイ...
-
C#のクラスをVB.netで使用したい!
-
エラーの原因は?「この関数の...
-
他の.CPPファイルに定義した関...
-
VB6で、非表示モジュール(?)の...
-
VC++でexeファイルが作成できま...
-
ソースから参照しているOCXの一...
-
Visual Studioでプロジェクトが...
-
VisualBasicを保存するときにで...
-
srand48? drand48?
-
「マージする」とは?
-
VB6 exeファイルのプロパティの...
-
プリコンパイル?
-
VC++ 2005 Intellisenseを更新....
-
libssh2のインクルード
-
Visual Studioを使ったフォーム...
-
同じソースコードなのにバイナ...
-
c言語として保存できない
おすすめ情報