C における 'register' と 'int' の違い
C で変数を宣言するとき、開発者は 'register' を使用できます。特定の変数がメモリではなくプロセッサ レジスタに存在する必要があることをコンパイラに示唆するキーワード。たとえば、次のコードを考えてみましょう:
int x = 7;
と:
register int x = 7;
2 つの例の違いは、'register' キーワードの使用方法にあります。最初のケースでは、「x」変数は整数として宣言され、メモリ内に常駐します。 2 番目のケースでは、'register' キーワードは、プロセッサ レジスタに 'x' を格納することが有益であることをコンパイラに示唆します。
ただし、コンパイラにはこれを無視する裁量権があることに注意することが重要です。提案。 Herb Sutter が「キーワードではない (または別の名前によるコメント)」で主張しているように:
「レジスタ指定子は自動指定子と同じセマンティクスを持っています...」
Inつまり、'register' を使用すると、'auto' キーワードと同様の方法で 'x' を割り当てるようにコンパイラに指示されるだけであり、変数の位置に特別な意味はありません。したがって、「register」はレジスタ ストレージの優先順位を伝えますが、実際の実装はコンパイラの裁量によって決まります。
以上がC の「register」と「int」の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。