[1082] Re:変数の宣言
投稿者:774RR
2008/02/01 22:20:46
>また、言語によって違ったりするんでしょうか。
世の中にはプログラミング言語など星の数ほどあるので、違ったりするだろうな
それだと答えに困るので、とりあえず C C++ の類に限定すると
メモリ という言葉をより広義の「記憶域」と読み替えて
(1) Yes
(2) 宣言が同時に定義となる場合には Yes
変数は狭義の「メモリ」つまり、俗に言う RAM に置かれるとは限らなくて
もっと高速にアクセスできる「レジスタ」に置かれる場合もあるわけだ。
レジスタとメモリ(とその他変数に使えそうなもの)を称して記憶域という
(1)(2)のあわせ技から以下のようなバグが発生することがあるので注意だな
「定義にならない宣言」と「定義になる宣言」が矛盾する場合におかしなことになる
---a.c---
extern int wrong_declared_variable; // declaration without definition
...
wrong_declared_variable=0; // may destroy other variables
---b.c---
char wrong_declared_variable; // declaration with definition