我在一本书中读到,每当我们使用存储类为register声明变量时,它将被存储在寄存器中,前提是有空闲的寄存器可用。如果没有寄存器可用,则会分配默认的auto存储类型。
每当我们声明一个变量而没有明确指定任何存储类型时,默认分配给它的存储类型就是'auto'。
所以,我的问题是,为什么不把每个变量都声明为'register'存储类 - 如果没有寄存器可用,它将被视为默认的'auto'类。 幸运的是,如果有寄存器可用,那么它将被存储在其中。我知道我们不能再使用&运算符了,但是如果我不使用指针和地址,我可以使用'register'存储类来声明这些变量吗?因为这似乎是一种不好的做法。
编辑:我搜索了网页,但唯一提到的是“地址不可用”。为什么其他变量不能声明为'register'没有被提及。
register
在C++11中已被废弃,并将在C++17中移除。 - user657267register
本身并不足够强大。换句话说,除了同行压力外,没有理由不在任何地方使用它。 - Alex Celeste