<戻る検索
global変数参照


2004 06/25 15:25
オタコン
C言語について教えて下さい。
別ファイルのグローバル変数を使いたいときに、
externを使う方法以外で良い方法がありますか?
良いと言う意味はRASISを満たしている意味です。


2004 06/25 15:56
επιστημη
extern以外に異なる翻訳単位にある変数にアクセスする方法はありません。

2004 06/25 16:07
オタコン
C++なら可能ですか?

2004 06/25 16:35
tetrapod
グローバル変数ということなら C++ でも extern 以外に手は無いです。

> 良いと言う意味はRASISを満たしている意味です。
わからん。なぜここに RASIS なんて言葉が出る?
正しい手順に則らない、妙ちきりんな方法でアクセスできたとして、
そこに Reliability などあるはずがない。
# Portability もないだろう。

クラススコープの静的変数は extern を使いませんがこれはグローバルとは言わない。


2004 06/25 17:01
オタコン
externは直で変数にアクセスできるし、
あぶないからRASISを満たすアクセス方法はないかなということです。
ここでいうRASISとはソフトウェアRASISのことです。
別のところで聞いてみます。
ありがとう。

2004 06/25 17:06
j
プログラミング言語に対して RASIS がどうのって、私は初めて聞きますねぇ。
OS とか システムレベルで語られるものじゃなかったかと思うんだけど。
RASIS の何をどうプログラミング言語にあてはめて考えればいいのかピンとこないです。
そのへんの基準って、どこかにあるんですか?

2004 06/25 17:09
tetrapod
余計わからん。
こんな妄想をしてみたがこれがご希望のことなのだろうか?

RASIS 的?に、読み込みは許可したいが書き込みは禁止したい。
extern int aaa; とすると aaa=1; とか書けちゃうから良くない。

それなら大域変数に直接アクセスするのではなく
int get_aaa() { return aaa; }
のような関数を噛ませばいい。

っていうか質問が不適切すぎ。
何をどうしたいのかまったくわからん。


2004 06/25 17:10
επιστημη
> あぶないからRASISを満たすアクセス方法はないかなということです。

あぶない云々をとやかくいうなら、最初にグローバル変数をなくすのが一番かと。


2004 06/25 17:11
tetrapod
むっちゃ御意。
# それ書こうと思ったけどやめといたんだ。


2004 06/26 07:03
RAPT
んで、クラス所属のメンバ変数をすべてprivateに隠して、
アクセスメソッドgetter/setterを全実装。

…そんなばかな。