OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

static で宣言

  • 暇なときにでも
  • 質問No.209519
  • 閲覧数56
  • ありがとう数1
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 59% (194/328)

LRESULT CALLBACK WinProc(HWND hWnd, UINT msg,WPARAM wP, LPARAM lP){
static char str = 'a';

1回目の WinProc() 実行の時しか static char str = 'a'; は実行されない。


LRESULT CALLBACK WinProc(HWND hWnd, UINT msg,WPARAM wP, LPARAM lP){
char str = 'a';

としても、1回目の WinProc() 実行の時しか char str = 'a'; は
実行されないんですか?
通報する
  • 回答数1
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.1
レベル13

ベストアンサー率 24% (357/1463)

static char str = 'a';
は関数の処理の記述ではなく、static変数の初期化を示すsテトメントです。
したがって、「1回目の WinProc() 実行の時」というよりも、プログラム
起動時に1回実行されるだけです。
char str = 'a';
も初期化ステートメントですが、こちらは変数の有効範囲がその関数の中だけ
ですので、WinProc() 実行時に毎回実行されます。ただし、関数から出ると
変数は消えてしまいます。
お礼コメント
A__

お礼率 59% (194/328)

ありがとうございます。
char str = 'a';
なら WinProc( ) を実行するだびですね。
投稿日時 - 2002-02-02 00:43:54
-PR-
-PR-
このQ&Aで解決しましたか?
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ