タグ

関連タグで絞り込む (2)

タグの絞り込みを解除

Qiitaとグローバル変数に関するatsushifxのブックマーク (1)

  • 静的解析に引っかからなかったメモリ破壊の話 - Qiita

    リセットされるカウンタは g_loop_counter です。 いったい何がいけないのか、わかりますか? mapファイルで確認すると、g_loop_counter は g_is_error_flg の次のアドレスでした。 ステップ実行して g_is_error_flg = false; で g_loop_counter に 0 が書き込まれるのを確認できました。 ただ、g_is_error_flg = false; の何がいけないのか、しばらくは分かりませんでした。 mogemoge.c から見ると、g_is_error_flg の宣言はどっか別の所にあって、mogemoge.c 内では unsigned int として扱うしかない訳です。 ところが、アドレスの割り付けとしてはg_is_error_flg と g_loop_counter で1バイトずつでしか割り当てられていない訳で。 困

    静的解析に引っかからなかったメモリ破壊の話 - Qiita
    atsushifx
    atsushifx 2013/12/01
    教科書的にはグローバル変数を使うな、staticにして.cファイルでアクセサを定義しろ、というOOPの導入が一番いい。そうでないなら変数宣言をヘッダファイルにまとめて、#define GLOBALをつかうのが昔からあるテクニック
  • 1