ここから本文です

グローバルの領域にFlagを配置した場合とstaticで配置した場合の動作の違いは何で...

アバター

ID非公開さん

2019/9/913:41:05

グローバルの領域にFlagを配置した場合とstaticで配置した場合の動作の違いは何ですか?

閲覧数:
33
回答数:
3

違反報告

ベストアンサーに選ばれた回答

2019/9/1000:46:42

static は、どこに冠してんのかなぁ? 曖昧だねぇ!

グローバル変数に、static を冠した場合と
冠していない場合との違いは、コンパイル
単位スコープとリンク単位スコープの違い。

これ、動作の違いってのかな?

この回答は投票によってベストアンサーに選ばれました!

ベストアンサー以外の回答

1〜2件/2件中

並び替え:回答日時の
新しい順
|古い順

プロフィール画像

カテゴリマスター

n2q********さん

2019/9/1008:34:28

「staticで配置した場合」

それが原因でビルドに失敗することが考えられますが、お尋ねのご趣旨としては両方の場合で動作可能とする前提であると考えるものとします。



~動作の違い~

基本的には同じです。ただ、「staticで配置した場合」に関してコード生成系・最適化処理系が、そこで成立する制約条件を上手く使って何らかの有利なコードを生成する可能性が無いとは言えないと思います。



《そういうご趣旨のお尋ねではない場合》

だとすると「動作の違い」という観点にはなりませんが、次のような差異があります。


「グローバルの領域にFlagを配置した場合」

いろいろなところからアクセスできます。このことは管理上問題になります。


「staticで配置した場合」

アクセスできる箇所は限定されますが、データはずっとそこに存在し続けることになります。そして、このことはやはり管理上問題となります。

よこまやさん

2019/9/915:19:04

そのまま検索したら出て来るから詳細はそちら参照ですが、よくあるのはC言語ではソースを複数ファイルに分割して作りますけど、staticはグローバル領域というか関数の外で宣言しても、別ファイルから参照できません。

あわせて知りたい

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる