現在、C++ 11 に頭を悩ませようとしていて、ちょうど auto キーワードを発見しました。
auto を使用すると、特定の値がデフォルトでどのタイプになるのか疑問に思っていました。
たとえば、整数値が 65535 の場合、デフォルトで unsigned int、signed int、unsigned short などになりますか? それとも、自動のままで、デフォルトにする必要はありませんか?
どんな助けでも大歓迎です
それは何にも「デフォルト」ではありません。65535
は、int
定義上、であるため、この場合もそうですauto
。int
たとえば、を実行した場合65535L
、それはlong
、であり、にauto
なりますlong
。
上記は「典型的な」システムを考慮していることに注意してください。65535
が大きすぎる場合int
(おそらくint
、この他のシステムでは16ビットであるため)、コンパイラは、それ自体のデータ型(この場合は)に65535
「適合する」ように、より大きな型を与えます。この場合、次のようになります。 。整数リテラルのタイプに関する正確な規則は、標準のセクション2.14.2に記載されています(BenjaminLindleyとJamesKanzeに感謝します)。ただし、覚えておくべき重要な部分は、何かのタイプに関して特定の明確なルールがあるため、何かを推測したり「デフォルト」にしたりする必要がないことです。long
auto
long
auto