C でキーワードを登録する : 違いを明らかにする
C では、構文 "int x=7" および "register int x=7" 」は似ているように見えるかもしれませんが、微妙な違いを意味します。 「register」キーワードは、変数がメモリではなくプロセッサ レジスタに格納されるべきであることをコンパイラに示唆します。
この区別は、格納期間の概念から生じます。デフォルトでは、「register」キーワードなしで宣言された変数はメモリに格納されるため、アクセス時間が遅くなります。対照的に、「register」でマークされた変数はレジスタ内に存在する可能性があり、アクセス速度が向上します。
ただし、「register」キーワードは単なるヒントであることに注意することが重要です。コンパイラは、次のような要因に基づいてこの要求に従う場合と従わない場合があります。
Herb Sutter,有名な C の専門家である彼は、著書「キーワードではない (または別の名前によるコメント)」でこの点を強調しています:
「レジスタ指定子は自動指定子と同じセマンティクスを持っています...」
この引用符は、「register」キーワードが「auto」指定子と同様に動作することを暗示しており、この指定子は、使用パターンに基づいて変数の保存期間を決定するようコンパイラに指示します。
最終的には、「 register" キーワードは微妙な最適化手法であり、必ずしも望ましいパフォーマンスの向上が得られるとは限りません。ただし、変数ストレージに関するプログラマの意図をコンパイラに通知する貴重なツールとして機能します。
以上がC の「register」キーワードが単なる提案であるのはどのような場合で、指示であるのはどのような場合ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。