タグ

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

  • 関連タグはありません

タグの絞り込みを解除

C言語に関するjsuoのブックマーク (2)

  • C言語テトリスのソースコードを読む - itouhiroはてなブログ

    C言語テトリスの記事 http://itouhiro.hatenablog.com/entry/20121112/tetris のソースコードを詳しく読んでみよう。 まず、 int board[12][25]; これがグローバル変数で、ウィンドウ内の画面を管理している。 ゲーム画面を見る限り、横10 x 縦20 の箱でできている。 しかしデータ上は 横12 x 縦25 で管理しているのだ。(C言語は1からではなく0から数えはじめる google:0オリジン ので、1~12ではなく0~11になる) 「Y軸を上に行くと+」という数学的座標系でこのソースは書かれている。 次はブロック定義の部分。 typedef struct _TAG_BLOCK { int rotate; POSITION p[3]; } BLOCK; BLOCK block[8] = { {1, { {0, 0}, { 0,

    jsuo
    jsuo 2014/07/06
  • いまさらC言語のexternで悩む – ビットログ

    とある製品のソースコードを眺めていたときに疑問に思って調べたことをメモします。 C言語で通常、大域変数(グローバル変数)を複数のソースファイルで共有する場合、共通でincludeするヘッダファイルにextern int abc;みたいに書いて、ソースファイルのいずれか1つに実体をint abc;みたいに書くと(私は)思っていたのですが、その製品のソースではヘッダファイルの方にint abc;とあり、各ソースファイルにextern int abc;という風に書かれています。 一瞬、それぞれのモジュール(ソースファイル)に別々の実体が存在するのかな、と思ったのですが、実際のその製品の動きを見てみるとちゃんと変数を共有して使っているようです。 私のいままでの理解が間違っているかもしれないので調べようと思ったのですが、C言語の規約を調べるのも億劫だし、環境依存かもしれないので、とりあえずサンプルを

    jsuo
    jsuo 2013/12/21
  • 1