![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
No.2ベストアンサー
- 回答日時:
static(C/C++)
使われ方によって意味が違います。
関数につける場合:他のファイルから参照できなくなります。
メンバ関数につける場合:ほぼ関数と同じ扱いになります。つまりthis等が使えないしstatic以外のメンバは呼べませんがスコープはそのままです。(C++)
メンバ変数につける場合:すべてのインスタンス共有になります。(C++)
関数内の変数につける場合:ヒープに領域がとられ、毎回同じ部分が参照されます。
グローバル変数につける場合:他のファイルから参照できなくります。
inline(C++)
インライン展開されます。
インライン展開とはマクロ関数に近いですが、関数やメンバ関数と同じように書けます。
一般的に
インライン展開すると、関数呼び出しによるオーバーヘッドがなくなるので
実行速度ははやくなりますが、実行ファイルのサイズが増えます。
またinline指定しなくてもコンパイラの最適化の設定によっては
勝手にinline展開されます。
No.4
- 回答日時:
まず確認ですが、「関数」で「C言語(C++ではなく)」ですよね?
下の方達の回答には「変数」「C++」に関するものが混じっているようなので注意してください。
inlineに関するご理解は問題無いかと思われます。
「関数にstatic」ですが、「スコープを同ファイル内に限定する」という指定です。
要するに、「その関数を呼べるのは、同じファイル内の他の関数からだけになる。」ということですね。
No.3
- 回答日時:
staticについて言うと、メモリ上に一つしかオブジェクトが存在しないということです。
例えば(細かい文法話は抜きにしてね)、
class ABC {
static int aaa;
int bbb;
}
とした場合、
ABC *abc1 = new ABC();
ABC *abc2 = new ABC();
ABC *abc3 = new ABC();
などというように、このクラスのインスタンス(オブジェクト)を複数個作ってゆくと、bbbは作った数だけメモリ上に確保されます。
即ちbbbという名前のint型変数が、異なるメモリ領域に割り当てられるわけです。即ち名前は同じですが、全て別物です。
こういう変数をインスタンス変数と言ったりもします。
対してaaaはそのクラスに一つしか存在しないので、どんなにそのクラスのインスタンスを作っても、一つしか存在しません。
言い方を変えると、インスタンスを作る必要がありません。
使われ方としては、複数のインスタンス間の共有メモリ的な感じです。
こういう変数をクラス変数と言ったりします。
No.1
- 回答日時:
static
http://www.google.co.jp/search?hl=ja&lr=lang_ja& …
inline
http://www.google.co.jp/search?hl=ja&lr=lang_ja& …
それぞれの説明によって 質問者が判りやすい判りにくいがあるからどれか適当なやつを読んでね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java java 飾子を付けること(public static・・・) ・コンソールへの出力処理はmainメ 2 2022/06/16 19:34
- 大学・短大 【マクロ経済学】 ①輸入に占める製品の比率が上昇すると、乗数の波及効果にはどのような影響があるか? 1 2023/01/26 12:59
- HTML・CSS img と p を縦中央に配置したいのですがうまくいきません。 2 2023/01/12 14:38
- Excel(エクセル) エクセルの自動更新のタイミングについて 1 2022/07/20 16:12
- 大学・短大 C言語線形リストの問題です 3 2022/12/22 00:45
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- Excel(エクセル) Indirect関数について、Formulatextで抽出した数式を参照したい。 1 2022/12/15 11:16
- C言語・C++・C# const char** p;のとき、free(p)でC4090エラーとなるのはなぜですか 3 2023/03/31 16:28
- C言語・C++・C# C言語について。 3 2022/11/05 20:30
- 数学 多変数関数の微分とテイラー展開について 5 2022/04/24 16:55
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
インスタンス参照でアクセスで...
-
変数名の付け方
-
複数の変数を宣言する時、同時...
-
private static という変数の修飾
-
VB.NET getとsetの概念がわかり...
-
生成したインスタンスを削除す...
-
文字列を日付に変換でParseExce...
-
C#において、同じインスタンス...
-
フォームのCheck boxとOLEObjec...
-
変数の参照でエラーが出てしま...
-
インスタンスを同じ名前で作成...
-
JavaのSingletonパターンのpriv...
-
C# インスタンスの破棄
-
エクセル(複数インスタンス)...
-
ファイル読み込み/書き込み速度...
-
VC#での24ビットbmp形式での保...
-
インスタンス生成で、○○.xxx();...
-
VB6.0のクラスで、自分自身のイ...
-
VB6.0で、DLLを動的に参照したい
-
参照渡し
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
変数名の付け方
-
private static という変数の修飾
-
インスタンス参照でアクセスで...
-
複数の変数を宣言する時、同時...
-
VB.NET getとsetの概念がわかり...
-
C#において、同じインスタンス...
-
生成したインスタンスを削除す...
-
C# インスタンスの破棄
-
文字列を日付に変換でParseExce...
-
String a = "a"; と String b =...
-
「インスタンス」の意味をわか...
-
変数の参照でエラーが出てしま...
-
フォームの存在をチェックする方法
-
SQLを連続発行する時の正しい(?...
-
javaのクラスの作り方、エラー...
-
オブジェクト参照がオブジェク...
-
他のファイルの変数参照
-
C#「オブジェクト参照が必要で...
-
エクセル(複数インスタンス)...
-
VB6.0で、DLLを動的に参照したい
おすすめ情報