ホームページ  >  記事  >  バックエンド開発  >  C で「int x=7;」の代わりに「register int x=7;」を使用するのはなぜですか?

C で「int x=7;」の代わりに「register int x=7;」を使用するのはなぜですか?

DDD
DDDオリジナル
2024-10-24 05:48:30785ブラウズ

Why Use 'register int x=7;' Instead of 'int x=7;' in C  ?

「int x=7;」の違いを理解するそして「int x=7 を登録します;」 in C

キーワード 'int' と 'register' はどちらも C で変数を宣言するために使用されます。 「int」キーワードは単に変数の型 (この場合は整数) を指定するだけですが、「register」キーワードはコンパイラへのヒントであり、その変数をメモリではなくプロセッサ レジスタに格納するようにアドバイスします。

「register」キーワードを使用することで、プログラマは、その変数が頻繁に使用される可能性が高く、それをプロセッサのレジスタに格納するとパフォーマンスが向上することをコンパイラに示唆しています。ただし、コンパイラがこのヒントに従う場合と従わない場合があることに注意することが重要です。

たとえば、変数 'x' が 1 回か 2 回しか使用されない場合、または頻繁にアクセスされる可能性が低い場合は、コンパイラは、'register' ヒントを無視し、代わりに変数をメモリに保存することを選択する場合があります。

Herb Sutter 氏の論文「Keywords That Aren't (or, Comments by Another Name)」によれば、次のようになります。

「レジスタ指定子は自動指定子と同じセマンティクスを持っています...」

このステートメントは、'register' キーワードが本質的にコンパイラへの提案であり、コンパイラが自由であることを意味します。変数をプロセッサ レジスタに保存するかどうかを決定します。

以上がC で「int x=7;」の代わりに「register int x=7;」を使用するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。