No.4
- 回答日時:
関数の外で定義した変数は、全て静的変数になります。
本来、全て静的変数なので、あえてstaticを付ける必要はありません。
しかし、関数の外で定義した変数は「外部参照可能か、外部参照不可で翻訳単位内(1つのソース内)のみで参照可能か」の2通りがあります。
そこで、この2つを区別する為「静的変数を意味するキーワードstaticを流用」して、
static付き→外部参照不可
static無し→外部参照可
と言う事にしてしまいました。
本当であれば「private」とかって修飾子でも追加して、
private int a;
とでも書いたら「外部参照不可」にすれば良かったのですが、staticが流用されてしまった為、外部参照不可にする場合は
static int a;
と書く事になっています。
No.3
- 回答日時:
関数の外で static 属性を付けて定義した変数は、
当該変数の定義を含んでいるソースファイルに
存在するすべての関数からアクセス可能です(ファイルスコープ)。
当該プログラムが当該ソースファイルを含む
複数のソースファイルで構成していて、
当該ソースファイルと同様に他のソースファイルにおいても
関数の外で static int a; と定義した場合、
当該ソースファイルにおける変数 a と
他のソースファイルにおける変数 a とは
別々の領域に確保します。互いのアクセスは不可です。
No.2ベストアンサー
- 回答日時:
> 以下のコードの場合変数aは外部結合ですか
> それとも外部結合以外となるのでしょうか。
内部結合です。
ファイル有効範囲で宣言した関数・オブジェクトの結合は、大雑把にいうと次のような基準で決まります。
・externが付けば外部結合
・staticが付けば内部結合
・externもstaticも付かなければ外部結合
ただし、externもstaticも付かない場合、同一翻訳単位に同名の関数・オブジェクトの宣言があり、そちらにexternまたはstaticが付いているならそれに従います。
具体的には、
int a;
static a;
とあれば、aは内部結合になります。
> 識別子の宣言に対し同一ソースファイル内の関数内で
> その識別子の定義がある場合、その識別子は外部結合か
> どうかが知りたいのです。
void f(void)
{
static int a;
extern int b;
int c;
}
とある場合、bは外部結合ですが、他は「結合なし」です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 日本語 普遍・特殊・個別をハガの違いに適用しようとするのは無理筋 139 2022/11/17 19:59
- その他(結婚) 恋愛と結婚は違うと言いますが、共通の楽しみがなくてもやっていけるものですか? 現在、結婚相談所で知り 4 2023/06/20 17:47
- 不妊 子供が出来ない妻と別れたほうがいいですか? 私は代々伝わる味噌やの長男です。 結婚して7年、子供いま 9 2023/02/03 00:20
- その他(Microsoft Office) 【スプレドシート】IMPORTRANGE関数とSUMIFSの組み合わせ 1 2023/03/05 18:17
- Excel(エクセル) エクセルでSUMIFS関数で条件範囲の部分が#valueになる。 4 2023/04/28 12:42
- 妊活 45歳女です 現在53歳の男性と御付き合いをしております。 どちらも結婚歴無しでお互いにパートナーと 5 2023/02/27 12:14
- 失恋・別れ 理系大学生です。 5ヶ月ほど付き合った彼女と別れました。同学部学科の彼女です。 別れてから、1週間ほ 1 2022/04/17 19:11
- C言語・C++・C# C++のcinの動作 5 2023/02/26 00:13
- C言語・C++・C# 変数のスコープ 5 2023/05/27 17:50
- 浮気・不倫(結婚) 既婚男性に質問です。お気に入りの独身女性が結婚したら・・・ 3 2022/04/04 10:25
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語初心者の質問失礼します。
-
jwsファイルが開けない!
-
csvファイルを開かずに文字を検...
-
CSVファイルへの保存の際、デー...
-
String Table リソースを条件に...
-
C#で、フォームのタイトル名を...
-
iniファイルに追記がしたいです。
-
バッチで118項目のCSVを処理し...
-
Excel マクロ VBA 特定の文字列...
-
iniファイルをexeファイルと同...
-
テキストファイルの最終行を削...
-
フレームワークについて
-
XMLファイルの表示について
-
ASP .NETでファイル選択ダイア...
-
エクセルVBA Dir途中で止まる
-
fopenできる上限の変更
-
UNICODE文字が書き込めるWritep...
-
「VBS」の「MsgBox」につ...
-
画像読み込み時のOutOfMemory
-
インクルードファイルとインラ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語初心者の質問失礼します。
-
csvファイルを開かずに文字を検...
-
ファイル名の先頭にアンダース...
-
CSVファイルへの保存の際、デー...
-
ファイルを記録してあるセクタ...
-
テキストファイルの最終行を削...
-
SGファイルって何ですか?
-
ドラッグアンドドロップでファ...
-
分割コンパイルの#defineについて
-
VBに、Cのincludeのようなもの...
-
fopenできる上限の変更
-
グローバル変数のよくない使い...
-
ファイルの結合
-
大きいサイズのテキストファイ...
-
iniファイルに追記がしたいです。
-
バッチで118項目のCSVを処理し...
-
ハッシュの計算時間について
-
C言語のfopenについて教えてく...
-
Javascript で INI の読み書き
-
Excelマクロでの再読込み方法
おすすめ情報