C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C / C ++でグローバル変数が悪いのはなぜですか?


グローバル変数は、プログラム内の関数の外部で宣言および定義されます。それらは、プログラムの存続期間を通じてその価値を保持します。プログラムの実行中はアクセスできます。

非定数グローバル変数は、その値が任意の関数によって変更される可能性があるため、悪です。グローバル変数を使用すると、プログラムのモジュール性と柔軟性が低下します。プログラムでグローバル変数を使用しないことをお勧めします。グローバル変数を使用する代わりに、プログラムでローカル変数を使用してください。

名前の衝突を回避し、変数がグローバルであることを知るために、変数名のプレフィックスとして「g_」を使用します。変数を静的にすることでグローバル変数をカプセル化する別の方法もあります。

これがC言語のグローバル変数の例です

#include <stdio.h>
int g_var;
static g_var1;

int main () {
   int a = 15;
   int b = 20;

   g_var = a+b;
   g_var1 = a-b;
   
   printf ("a = %d\nb = %d\ng_var = %d\n", a, b, g_var);
   printf("g_var1 = %d", g_var1);

   return 0;
}

出力

これが出力です

a = 15
b = 20
g_var = 35
g_var1 = -5

  1. C#にグローバル変数がないのはなぜですか?

    C#にはグローバル変数がなく、C++でグローバル変数に使用されるスコープ解決演算子は名前空間に関連しています。これは、グローバル名前空間エイリアスと呼ばれます。 別の名前空間で識別子を共有するタイプがある場合は、スコープ解決演算子を使用してそれらを識別します。 たとえば、System.Consoleクラスを参照するには、スコープ解決演算子-を指定してグローバル名前空間エイリアスを使用します。 global::System.Console 例を見てみましょう- 例 using myAlias = System.Collections; namespace Program {  

  2. なぜMacはゲームが苦手なのですか?

    あなたがカジュアルなPCゲーマーであろうと真面目なPCゲーマーであろうと、MacとWindowsベースのコンピュータのどちらを選ぶかについては本当に争いはありません。写真やビデオの編集に関しては、Macが最も要求されているコンピューターのひとつですが、ゲームはまったく別の問題です。 数千とは言わないまでも数百のゲームが利用可能であるため、Mac用のゲームが完全に死んでいるとは限りません。とは言うものの、その数は、昨年だけでWindows用にリリースされたゲームの数に次ぐものです。では、なぜMacがゲームにとって望ましくないマシンと見なされているのでしょうか。その質問に答えるには、思い出の小