概ね方位不定だが多分割と偏っている
スポンサーサイト
--年--月--日 (--) | 編集 |
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。


C 静的変数
2006年12月03日 (日) | 編集 |
飲み会があったので久し振りにアルコールを摂取。かれこれ10年ほど振りの懐かしい面子での飲み会だったが、皆あまり性格は変わっていないようだった。何よりだ。

まあ著しく人格なんかが変わられても困るが。

とりあえず変わらぬ彼らとボクに乾杯。
縁と機会があったらいずれまた。
今回は静的変数について。
静的変数といえば前回、前々回と出てきた、メモリの静的領域に格納される変数である。
ちなみにせいてきと打つと性的とか正敵とか変換しやがるこのアホIME。
もっとストイック、もしくは平和的に変換できないのかね。全く嘆かわしい。


さて、そんな嘆かわしい静的変数の宣言だが、これまた前回、前々回の通り

static int a;

な感じで宣言したりする。
またまた前回、前々回の復習になるが、これで変数aはメモリの静的領域に割り当てられ、プログラムの始まりから終わりまで同じメモリ位置を使用することになる。
が、宣言がどこかの関数内でされたならば、変数はその関数内でしか参照できない。
始まりから終わりまで同じ領域を使うとはいえ、参照には制限があるってことだな。

ってこれだと自動変数と大して変わらないんじゃねー?

と、思わなくもないのだが、この「プログラムの始まりから終わりまで存在し続ける」という特徴を利用して、自動変数では出来ない動作を実現させたり出来るらしい。

例えばこんな

count( )
{
 static int num=0;
 printf("%d\n,++num);
}


関数countがあったとする。
これは呼び出される度に静的変数numに+1してカウントしていくだけの単純な関数なのだが、ここで使われている静的変数numを只のint変数numにしてしまうと、count関数が呼び出される度にnumを0に初期化してしまうので、カウントするという動作を正しく行えなくなってしまうのである。

かように静的変数はとても便利なものなのだ。
これ以外の利用法は知らんけど。


まとめよう。

静的変数はその変数内でのみ変動させたい場合に便利かもしらん

しかし他の変数も見てみないと何とも言えないな。
スポンサーサイト

コメント
この記事へのコメント
2日酔いでの勉強か!?
お疲れ様です。久々にNIWA発見したけど、全然変わっていない!!!
んで、何故にC....
2006/12/04(月) 23:47:56 | URL | ARA #-[ 編集]
お疲れ様でした。
変わらないのはお互い様だ。いや皆か。
全く何もかもが懐かしい。


今度DSに出るぷよぷよっていつくらいのバージョンなんだ?
2006/12/05(火) 02:23:48 | URL | Forest #-[ 編集]
詳細はよく分からないんだけど、
初代ぷよ+通+フィーバーってのが基本クラスの様です。
テトリスみたいにWiFiコネクション経由で世界中の人とも遊べるぞ!
(人でないヒトも近辺にいそうだが...)
12月14日はつばい。
2006/12/05(火) 19:31:42 | URL | ARA #-[ 編集]
フィーバーのシステムがよく分からんが…
まあそこら辺は公式サイト見りゃいいか。

しかし14日発売は困る。金が全然無いですよ。
しかも時期が戦国ランスと被る。

とりあえずは知人の家にwindow用ぷよぷよでも持ち込んでリハビリを図ってみるか。
2006/12/05(火) 23:32:27 | URL | Forest #-[ 編集]
コメントを投稿する
URL:
Comment:
Pass:
秘密: 管理者にだけ表示を許可する
 
トラックバック
この記事のトラックバックURL
この記事へのトラックバック
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。