掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
静的メンバ関数について (ID:68393)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
>static void StaticFunc( int n ) { > int j; >}; これは静的メンバ関数ではなくファイルスコープの非メンバー関数だと思われるが えー、どの辺が知りたいのかで話の内容が変わってくるのだが、とりあえず知っておくべきは ・静的変数(静的メンバ変数+関数内静的変数+大域変数)は共有される ・関数内自動変数や関数の引数は共有されない ように *コンパイラやリンカやOS自体を実装しなければならない* ということ。 逆に言えば VC++ に限らず一般的に実用されている処理系は、そのように実装されているので問題ない、ということ。 > 関数のアドレスは一緒でも、別レジスタを取ったりするのでしょうか? これは、そのように実装するための *詳細仕様* なわけだ。 実装詳細を論じるには VC++ や gcc などの内部に指突っ込む必要がある。 一般プログラマとしてはそういう詳細は知らなくてもいい。 問題なく排他処理なしに使えること、だけ知っていれば十分。 自動変数そのもの、引数そのものには排他処理は不必要なんだけど それがポインタであるとしたら、その指す先には排他処理が必要かもしれない。 それはまた別の話だったりするわけだけどさ
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.