3

次の方法で変数を定義する場合:

static register int a1 = 0;

エラーが発生します:

error: multiple storage classes in declaration specifiers

このエラーの根本的な理由はありますか? 変数をレジスタに格納することも、起動時/最初の呼び出し時にのみ初期化することもできないのはなぜですか? register ストレージ クラスをグローバル変数にアタッチすることができます。<-編集:そうではありません

4

3 に答える 3

5

コンパイラがあなたが望むものを忠実に実装した場合、プログラムの長さに対して CPU レジスタが拘束されます。それはほとんど実用的ではありません。

registerこれは単なる助言であることを忘れないでください。

于 2016-01-08T15:52:36.257 に答える