C、C ++変数auto、static、register、extern型

  派生型変数:/ Zc:auto [-]コンパイラー・オプションは、autoキーワードを使用して変数を宣言する方法をコンパイラーに指示します。 'Data-guid = "0be6182f1ca27bd1ea991f3f06584d3b">コンパイラー・オプションは、autoキーワードを使用して変数を宣言する方法をコンパイラーに指示します。デフォルトのオプション/ Zc:autoを指定すると、コンパイラーは宣言された変数のタイプをその初期化式から導出します。/ Zc:auto-を指定すると、コンパイラは変数を自動ストレージクラスに割り当てます。
  
  使用例:
  
  auto root = new TreeNode(* pre_first); where root is TreeNode *
  
  auto inRootPos = find(in_first、in_last、* pre_first); where inRootPos is int
  
  auto leftSize = distance(in_first、inRootPos); where leftsize is int
  
  static :
  
  CとC ++の両方に存在するキーワードです。3つの主な使用方法があります。最初の2つはC言語でのみ使用され、3つ目はC ++で使用されます。
  
  (1)ローカル静的変数
  
  (2)外部静的変数/関数
  
  (3)静的データメンバー/メンバー関数
  
  ローカル静的変数
  
  自動タイプ(共通)ローカル変数と比較して、静的ローカル変数には3つの違いがあります。
  
  1.記憶域スペースの割り当て方法は異なります。autoタイプはスタックに割り当てられ、動的記憶域カテゴリに属します。動的タイプは動的記憶域のスペースを占有し、関数呼び出し後に自動的に解放されます。静的割り当ては静的記憶域にあり、プログラムの操作全体で解放されません。2つの間のスコープは同じですが、存続期間が異なります。
  
  2.静的ローカル変数は、モジュールの最初の実行時に初期化され、一度だけ初期化されます。
  
  3.ローカル静的変数の場合、初期値が割り当てられていないと、初期値0またはnull文字がコンパイル時に自動的に割り当てられます。自動タイプの初期値は不確定です。(C ++のクラスオブジェクトを除いて、クラスのオブジェクトインスタンスが初期化されていない場合、静的型であるかどうかに関係なく、デフォルトのコンストラクターが自動的に呼び出されます)
  
  次に、外部静的変数/関数
  
  はC静的で2番目の意味を持っています:他のファイルからアクセスできないグローバル変数および関数を表すため。グローバル変数/関数のスコープを制限するために、関数または変数の前にstaticを追加すると、関数が静的関数になります。ただし、ここでの「静的」の意味は格納方法を指すのではなく、関数のスコープがこのファイルに限定されていることを意味します(そのため、内部関数とも呼ばれます)。現時点では、外部(グローバル)変数の場合、静的制限があるかどうかに関係なく、そのストレージ領域は静的ストレージ領域にあり、ライフタイムはグローバルです。この時点での静的はスコープ制限の機能にすぎず、スコープはこのモジュール(ファイル)内に制限されます。内部関数を使用する利点は、別の人が別の関数を作成するときに、定義する関数が他のファイルの関数と同じ名前になるかどうかを心配する必要がないことです。
  
  3.静的データメンバー/メンバー関数(C ++に固有)
  
  C ++はこのキーワードを再利用し、前のキーワードとは異なる3つ目の意味を与えます。これは、このクラスに属する特定のオブジェクトではなく、クラスに属する変数と関数を意味します。これが通常のメンバー関数との最大の違いであり、それが適用される場所でもあります。たとえば、特定のクラスのオブジェクトをカウントする場合、生成されたクラスのインスタンスの数をカウントすることにより、静的データメンバーを使用できます。このコンテキストでは、staticはスコープが限定されておらず、ライフタイムも延長されていませんが、このクラスの変数/関数の一意性を示しています。これは、「このクラスに属する特定のオブジェクトではなく、クラスに属する変数と関数」の意味でもあります。クラス全体で一意であるため、特定のインスタンスオブジェクトに属することはできません。(関係なく、静的スタティックメンバ関数の呼び出し、無このポインタ場合、通常のメンバ関数の呼び出しは、必要性が、このポインタを渡すためのメモリで唯一のコピーであるか否かの静的データメンバ、メンバ関数の目的のため)
  
  注:
  
  連合のメンバーのをすることはできませんこれは静的として宣言されていますが、グローバル匿名ユニオンの場合は、明示的に静的として宣言する必要があります。
  
  登録キーワード:
  
  関数パラメーターとローカル変数のみを登録として宣言できます。つまり、可能な場合、変数はCPUレジスタに格納されます。レジスタ変数は自動変数と同じであり、そのライフサイクルは、宣言するブロックでのみ維持されます。コンパイラーは、レジスター変数を指定するプログラマーを承認しません。実際の状況では、グローバル最適化のニーズに応じて、コンパイラーがレジスター・タイプを使用するかどうかを自動的に決定します。
  
  externキーワード:
  
  externはステートメントで使用され、オブジェクトまたは変数が別のコンパイル単位で定義されていることを示します(ヘッダーファイルなどの一部のファイルはコンパイル単位ではないため、他のファイルとは言えません);定義ステートメントで使用されている場合、この変数は外部から見ることができます。
  
  externと#includeの違いに注意してください。
  
  例1、externを使用します
  
  。//out.h
  
  int a = 10;
  
  //out.cpp
  
  #include "out.h"
  
  //example.cpp
  
  #include <iostream>
  
  using namespace std;
  
  extern int a;
  
  int _tmain(int argc、_TCHAR * argv [])
  
  {
  
  cout << "a =" << a << endl;
  
  system( "pause");
  
  return 0;
  
  }
  
  コンパイルおよびリンクプロセス:
  
  out.cppファイルはout.hファイルを参照するため、out.cppファイルの内容はint a = 10;、コンパイル単位out.obj(out.o)はコンパイル中に生成され、変数aが定義されています。example.cppファイルは、cout << "a =" << a << endl;への参照のように見えますが、ファイルにはaの定義がなく(extern int a;ステートメントのみ)、含まれているヘッダーファイルどちらでもありませんが、宣言extern int a;は、aが他のコンパイル単位で定義されていることを示しているため、コンパイルでエラーが発生しません。最後に、リンカはコンパイルユニットout.obj(out.o)でaの定義を見つけ、接続関係を確立して、最終的なexeファイルを生成します。プロジェクトには2つのコンパイルユニットがあり、最終的にexeファイルにリンクされます。
  
  例2、#includeを使用:
  
  //out.h
  
  int a = 20;
  
  //例。
  

  

  
  using namespace std;
  
  int _tmain(int argc、_TCHAR * argv [])
  
  {
  
  cout << "a =" << a << endl;
  
  system( "pause");
  
  return 0;
  
  }
  
  コンパイルしてリンクプロセス:
  
  example.cppファイルaへの参照はcout << "a =" << a << endl;に表示されますが、このファイルにはaの定義はありませんが、ヘッダーファイルout.hが含まれているため、コンパイル前にヘッダーファイルout .hはexample.cppファイルに展開されます。これは、example.cppファイルのa(int a = 20;)の定義と同等であり、コンパイルは成功します。最後に、リンカはコンパイルユニットをリンクして、最終的なexeファイルを生成します。プロジェクトにはコンパイルユニットが1つだけあり、最終的にexeファイルにリンクされます。

 

 

https://www.cnblogs.com/hanmlp52/category/1727703.html
https://www.cnblogs.com/hanmlp52/category/1727705.html
https://www.cnblogs.com/hanmlp52/category/1727708。 html
https://www.cnblogs.com/hanmlp52/category/1727709.html
https://www.cnblogs.com/hanmlp52/category/1727712.html
https://www.cnblogs.com/hanmlp52/category/1727714 .html
https://www.cnblogs.com/hanmlp52/category/1727716.html
https://www.cnblogs.com/hanmlp52/category/1727718.html
https://www.cnblogs.com/hanmlp52/category/ 1727720.html
https://www.cnblogs.com/hanmlp52/category/1727722.html
https://www.cnblogs.com/hanmlp52/category/1727724.html
https://www.cnblogs.com/hanmlp52/category /1727727.html
https://www.cnblogs.com/hanmlp52/category/1727729.html
https://www.cnblogs.com/hanmlp52/category/1727730.html
https://www.cnblogs.com/hanmlp52/category/1727733。 html
https://www.cnblogs.com/hanmlp52/category/1727736.html
https://www.cnblogs.com/hanmlp52/category/1727737.html
https://www.cnblogs.com/hanmlp52/category/1727740 .html
https://www.cnblogs.com/hanmlp52/category/1727743.html
https://www.cnblogs.com/hanmlp52/category/1727745.html
https://www.cnblogs.com/hanmlp52/category/ 1727748.html
https://www.cnblogs.com/hanmlp52/category/1727749.html
https://www.cnblogs.com/hanmlp52/category/1727751.html
https://www.cnblogs.com/hanmlp52/category /1727754.html
https://www.cnblogs.com/hanmlp52/category/1727756.html
https://www.cnblogs.com/hanmlp52/category/1727757.html
https://www.cnblogs.com/hanmlp52/category/1727761。 html
https://www.cnblogs.com/hanmlp52/category/1727763.html
https://www.cnblogs.com/hanmlp52/category/1727765.html
https://www.cnblogs.com/hanmlp52/category/1727767 .html
https://www.cnblogs.com/hanmlp52/category/1727769.html
https://www.cnblogs.com/hanmlp52/category/1727771.html
https://www.cnblogs.com/hanmlp52/category/ 1727774.html
https://www.cnblogs.com/hanmlp52/category/1727776.html
https://www.cnblogs.com/hanmlp52/category/1727778.html
https://www.cnblogs.com/hanmlp52/category /1727781.html
https://www.cnblogs.com/hanmlp52/category/1727783.html
https://www.cnblogs.com/hanmlp52/category/1727786.html
https://www.cnblogs.com/hanmlp52/category/1727787。 html
https://www.cnblogs.com/hanmlp52/category/1727790.html
https://www.cnblogs.com/hanmlp52/category/1727793.html
https://www.cnblogs.com/hanmlp52/category/1727795 .html
https://www.cnblogs.com/hanmlp52/category/1727797.html
https://www.cnblogs.com/hanmlp52/category/1727799.html
https://www.cnblogs.com/hanmlp52/category/ 1727801.html
https://www.cnblogs.com/hanmlp52/category/1727802.html
https://www.cnblogs.com/hanmlp52/category/1727806.html
https://www.cnblogs.com/hanmlp52/category /1727807.html
https://www.cnblogs.com/hanmlp52/category/1727808.html
https://www.cnblogs.com/hanmlp52/category/1727811.html
https://www.cnblogs.com/hanmlp52/category/1727813。 html
https://www.cnblogs.com/hanmlp52/category/1727815.html
https://www.cnblogs.com/hanmlp52/category/1727817.html
https://www.cnblogs.com/hanmlp52/category/1727820 .html
https://www.cnblogs.com/hanmlp52/category/1727821.html
https://www.cnblogs.com/hanmlp52/category/1727823.html
https://www.cnblogs.com/hanmlp52/category/ 1727825.html
https://www.cnblogs.com/hanmlp52/category/1727829.html
https://www.cnblogs.com/hanmlp52/category/1727830.html
https://www.cnblogs.com/hanmlp52/category /1727832.html
https://www.cnblogs.com/hanmlp52/category/1727834.html
https://www.cnblogs.com/hanmlp52/category/1727837.html
https://www.cnblogs.com/hanmlp52/category/1727838。 html
https://www.cnblogs.com/hanmlp52/category/1727840.html
https://www.cnblogs.com/hanmlp52/category/1727842.html
https://www.cnblogs.com/hanmlp52/category/1727843 .html
https://www.cnblogs.com/hanmlp52/category/1727845.html
https://www.cnblogs.com/hanmlp52/category/1727846.html
https://www.cnblogs.com/hanmlp52/category/ 1727848.html
https://www.cnblogs.com/hanmlp52/category/1727849.html
https://www.cnblogs.com/hanmlp52/category/1727850.html
https://www.cnblogs.com/hanmlp52/category /1727852.html
https://www.cnblogs.com/hanmlp52/category/1727853.html
https://www.cnblogs.com/hanmlp52/category/1727854.html
https://www.cnblogs.com/hanmlp52/category/1727856。 html
https://www.cnblogs.com/hanmlp52/category/1727857.html
https://www.cnblogs.com/hanmlp52/category/1727858.html
https://www.cnblogs.com/hanmlp52/category/1727860 .html
https://www.cnblogs.com/hanmlp52/category/1727861.html
https://www.cnblogs.com/hanmlp52/category/1727862.html
https://www.cnblogs.com/hanmlp52/category/ 1727864.html
https://www.cnblogs.com/hanmlp52/category/1727865.html
https://www.cnblogs.com/hanmlp52/category/1727866.html
https://www.cnblogs.com/hanmlp52/category /1727868.html
https://www.cnblogs.com/hanmlp52/category/1727869.html
https://www.cnblogs.com/hanmlp52/category/1727870.html
https://www.cnblogs.com/hanmlp52/category/1727872。 html
https://www.cnblogs.com/hanmlp52/category/1727873.html
https://www.cnblogs.com/hanmlp52/category/1727875.html
https://www.cnblogs.com/hanmlp52/category/1727876 .html
https://www.cnblogs.com/hanmlp52/category/1727877.html
https://www.cnblogs.com/hanmlp52/category/1727879.html
https://www.cnblogs.com/hanmlp52/category/ 1727880.html
https://www.cnblogs.com/hanmlp52/category/1727881.html
https://www.cnblogs.com/hanmlp52/category/1727883.html
https://www.cnblogs.com/hanmlp52/category /1727884.html
https://www.cnblogs.com/hanmlp52/category/1727885.html
https://www.cnblogs.com/hanmlp52/category/1727887.html
https://www.cnblogs.com/hanmlp52/category/1727888。 html
https://www.cnblogs.com/hanmlp52/category/1727890.html
https://www.cnblogs.com/hanmlp52/category/1727891.html
https://www.cnblogs.com/hanmlp52/category/1727892 .html
https://www.cnblogs.com/hanmlp52/category/1727894.html
https://www.cnblogs.com/hanmlp52/category/1727895.html
https://www.cnblogs.com/hanmlp52/category/ 1727897.html
https://www.cnblogs.com/hanmlp52/category/1727898.html
https://www.cnblogs.com/hanmlp52/category/1727899.html
https://www.cnblogs.com/hanmlp52/category /1727901.html
https://www.cnblogs.com/hanmlp52/category/1727902.html
https://www.cnblogs.com/hanmlp52/category/1727904.html
https://www.cnblogs.com/hanmlp52/category/1727905。 html
https://www.cnblogs.com/hanmlp52/category/1727907.html
https://www.cnblogs.com/hanmlp52/category/1727908.html
https://www.cnblogs.com/hanmlp52/category/1727909 .html
https://www.cnblogs.com/hanmlp52/category/1727911.html
https://www.cnblogs.com/hanmlp52/category/1727912.html
https://www.cnblogs.com/hanmlp52/category/ 1727913.html
https://www.cnblogs.com/hanmlp52/category/1727915.html
https://www.cnblogs.com/hanmlp52/category/1727916.html
https://www.cnblogs.com/hanmlp52/category /1727918.html
https://www.cnblogs.com/hanmlp52/category/1727919.html
https://www.cnblogs.com/hanmlp52/category/1727920.html
https://www.cnblogs.com/hanmlp52/category/1727922。 html
https://www.cnblogs.com/hanmlp52/category/1727923.html
https://www.cnblogs.com/hanmlp52/category/1727925.html
https://www.cnblogs.com/hanmlp52/category/1727926 .html
https://www.cnblogs.com/hanmlp52/category/1727927.html
https://www.cnblogs.com/hanmlp52/category/1727929.html
https://www.cnblogs.com/hanmlp52/category/ 1727930.html
https://www.cnblogs.com/hanmlp52/category/1727932.html
https://www.cnblogs.com/hanmlp52/category/1727933.html
https://www.cnblogs.com/hanmlp52/category /1727934.html
https://www.cnblogs.com/hanmlp52/category/1727936.html
https://www.cnblogs.com/hanmlp52/category/1727937.html
https://www.cnblogs.com/hanmlp52/category/1727940。 html
https://www.cnblogs.com/hanmlp52/category/1727941.html
https://www.cnblogs.com/hanmlp52/category/1727942.html
https://www.cnblogs.com/hanmlp52/category/1727943 .html
https://www.cnblogs.com/hanmlp52/category/1727945.html
https://www.cnblogs.com/hanmlp52/category/1727946.html
https://www.cnblogs.com/hanmlp52/category/ 1727948.html
https://www.cnblogs.com/hanmlp52/category/1727949.html
https://www.cnblogs.com/hanmlp52/category/1727951.html
https://www.cnblogs.com/hanmlp52/category /1727952.html
https://www.cnblogs.com/hanmlp52/category/1727953.html
https://www.cnblogs.com/hanmlp52/category/1727955.html
https://www.cnblogs.com/hanmlp52/category/1727956。 html
https://www.cnblogs.com/hanmlp52/category/1727959.html
https://www.cnblogs.com/hanmlp52/category/1727960.html
https://www.cnblogs.com/hanmlp52/category/1727962 .html
https://www.cnblogs.com/hanmlp52/category/1727963.html
https://www.cnblogs.com/hanmlp52/category/1727965.html
https://www.cnblogs.com/hanmlp52/category/ 1727966.html
https://www.cnblogs.com/hanmlp52/category/1727967.html
https://www.cnblogs.com/hanmlp52/category/1727969.html
https://www.cnblogs.com/hanmlp52/category /1727970.html
https://www.cnblogs.com/hanmlp52/category/1727971.html
https://www.cnblogs.com/hanmlp52/category/1727973.html
https://www.cnblogs.com/hanmlp52/category/1727974。 html
https://www.cnblogs.com/hanmlp52/category/1727976.html
https://www.cnblogs.com/hanmlp52/category/1727977.html
https://www.cnblogs.com/hanmlp52/category/1727978 .html
https://www.cnblogs.com/hanmlp52/category/1727980.html
https://www.cnblogs.com/hanmlp52/category/1727981.html
https://www.cnblogs.com/hanmlp52/category/ 1727982.html
https://www.cnblogs.com/hanmlp52/category/1727984.html
https://www.cnblogs.com/hanmlp52/category/1727985.html
https://www.cnblogs.com/hanmlp52/category /1727986.html
https://www.cnblogs.com/hanmlp52/category/1727988.html
https://www.cnblogs.com/hanmlp52/category/1727989.html
https://www.cnblogs.com/hanmlp52/category/1727991。 html
https://www.cnblogs.com/hanmlp52/category/1727992.html
https://www.cnblogs.com/hanmlp52/category/1727993.html
https://www.cnblogs.com/hanmlp52/category/1727995 .html
https://www.cnblogs.com/hanmlp52/category/1727996.html
https://www.cnblogs.com/hanmlp52/category/1727998.html
https://www.cnblogs.com/hanmlp52/category/ 1727999.html
https://www.cnblogs.com/hanmlp52/category/1728000.html
https://www.cnblogs.com/hanmlp52/category/1728002.html
https://www.cnblogs.com/hanmlp52/category /1728003.html
https://www.cnblogs.com/hanmlp52/category/1728005.html
https://www.cnblogs.com/hanmlp52/category/1728006.html
https://www.cnblogs.com/hanmlp52/category/1728007。 html
https://www.cnblogs.com/hanmlp52/category/1728009.html
https://www.cnblogs.com/hanmlp52/category/1728010.html
https://www.cnblogs.com/hanmlp52/category/1728012 .html
https://www.cnblogs.com/hanmlp52/category/1728013.html
https://www.cnblogs.com/hanmlp52/category/1728015.html
https://www.cnblogs.com/hanmlp52/category/ 1728016.html
https://www.cnblogs.com/hanmlp52/category/1728018.html
https://www.cnblogs.com/hanmlp52/category/1728019.html
https://www.cnblogs.com/hanmlp52/category /1728020.html
https://www.cnblogs.com/hanmlp52/category/1728022.html
https://www.cnblogs.com/hanmlp52/category/1728023.html
https://www.cnblogs.com/hanmlp52/category/1728025。 html
https://www.cnblogs.com/hanmlp52/category/1728026.html
https://www.cnblogs.com/hanmlp52/category/1728027.html
https://www.cnblogs.com/hanmlp52/category/1728029 .html
https://www.cnblogs.com/hanmlp52/category/1728030.html
https://www.cnblogs.com/hanmlp52/category/1728032.html

おすすめ

転載: www.cnblogs.com/hanmlp52/p/12723700.html