iPhone開発でプレーンCを使用する場合、コンパイラはregister
と宣言された変数をCPUレジスタに配置しますか?レジスタの宣言はコンパイラによって無視されますか?
答えて
確かにわかる唯一の方法は、コンパイラのドキュメントを見て、それでregister
が何をするのかを記述していなければ、(標準で定義されたパラメータ内で)何かを行うことができます。
register
は、コンパイラの推奨ヒントです。変数が実際にレジスタに配置されることは保証されません。
使用可能なスペアレジスタがない場合でも、変数はスタックに残ります。
私が知りたいのは、常に無視されるか、コンパイラが可能であればそれをレジスタに割り当てることです。 –
それは無視されることはありませんが、言われたように、それは唯一のヒントであり、注文ではありません。 – ydroneaud
@ydroneaudどうやって分かりますか? K&Rでは、「コンパイラはアドバイスを無視してもかまいません」と言われています。私はこのコンパイラが何かをしようとするかどうか知りたいです。 –
register
キーワードはCPUのハードウェアレジスタを参照していません。変数register
の任意の型を宣言でき、ハードウェアレジスタに決して適合しない型も宣言できるので、できません。
このような変数のアドレスを決して使用しないことは、コンパイラと契約しているだけです。あなたからのこのような約束は、コンパイラの最適化の作業を容易にします。特に、変数はエイリアス化することはできません。より一般的には、直接制御フローの外側から変更することはできません。
通知なしにdownowingワウ。そこに何か事実上間違っていますか? –
- 1. TypeScriptコンパイラはtsconfig.jsonの宣言ファイルを無視します
- 2. intelコンパイラによって大きなループは無視されましたか?
- 3. コンパイラによってポインタ演算が無視される
- 4. 文は完全に無視されます(コンパイラによって省略されたかのように)
- 5. typedef宣言で__attribute__((__packed__))が無視されますか?
- 6. .eslintignoreはcreate-react-appによって無視されますか?
- 7. Icinga2 - ホストのdisplay_nameはicingaweb2によって無視されます
- 8. 変数が宣言されたVARが、コンパイラはそれを言っているようヴァル
- 9. isErrorPage = "false"はコンテナによって無視されます
- 10. LD_LIBRARY_PATHはGCCによって無視されます
- 11. DataContractSerializer - XML宣言を無視する
- 12. CustomModuleのコンポーネントは、AppModuleのトップレベル宣言を無視します
- 13. INSTALL_BASEはMakefile.PLによって無視されるようです。
- 14. クラスのメソッド宣言の順序はコンパイラにとって重要ですか?
- 15. Standardでは、U :: jのデフォルトメンバー初期化子はコンパイラによって無視されるべきだと言いますか?
- 16. バンドルされた.d.tsを無視して外部宣言を使用する
- 17. jaxb:extensionBindingPrefixes属性で指定されていないため、バインディング宣言ネームスペース "http://annox.dev.java.net"は無視されます。
- 18. はIBM WebShereアプリケーションサーバーの宣言型セキュリティを無視しました
- 19. TypeScriptのAngular2:@componentの後に宣言されたコンパイラのエラー
- 20. 不足しているJSXタイプを宣言/無視するにはどうすればよいですか?
- 21. [NSBundle mainBundle]によって宣言されているCFStringオブジェクト
- 22. XML検査で宣言された要素が無視される
- 23. JSONにシリアル化するときに、宣言されたオブジェクトの変数の一部を無視しますか?
- 24. プロキシはMechanizeによって無視されるようですか?
- 25. welcome-file-listがサーバーによって無視されていますか?
- 26. n番目の子がブラウザによって無視されて
- 27. "warn_unused_result"属性で宣言された関数の戻り値を無視する
- 28. コンパイラは宣言の順序を変更できますか?
- 29. フォームonsubmit()はAjaxフォームの送信によって無視されます
- 30. C++エラーはクラスが宣言されていないと言っています
AFAIKアップルではgccを使用していますが、私はそれが修正版であると言っている文書を見つけることができませんでした。 –