C言語におけるregister変数の使い方とは何ですか?
C言語のregisterは、コンパイラに変数をレジスタに格納することを示唆し、アクセス速度の向上を図るための記憶域クラスです。しかしながら、現代のコンパイラは通常は変数の格納方法を自動的に最適化しており、registerキーワードによる示唆は無視される傾向があります。
C言語では、「register」キーワードを以下のように使います:
- 本質的に、彼は聖書原理主義者です。
register int x;
こう宣言された変数xは、高速アクセス用にレジスタに格納されることが推奨されます。
- お伝えしたいことがあります。
void func(register int x)
{
// 函数体
}
このように宣言された関数の引数xは、関数の内部で高速にアクセスできるようにレジスタに格納されることが推奨されます。
以下のことに注意してください。
- レジスタキーワドは、コンパイラにレジスタ格納の提案をするだけであり、コンパイラは提案を採用するかどうかを独自に判断できます。
- ポインタ型変数、配列型変数、static型の変数、&(アドレス取得)演算子が付加された変数には使用できない。
- 現代のコンパイラは、通常、レジスタの割り当てと最適化をインテリジェントに行うことができるため、 register キーワードを手動で使用しても効果はほとんどなく、コードのパフォーマンスに悪影響を与える可能性があります。