以下代码使用gcc version 4.7.2 (Debian 4.7.2-5)
编译并运行:
#include <stdio.h>
int main()
{
const volatile x = 3;
volatile const y = 4;
return 0;
}
我应该假设const和volatile的顺序无关紧要吗?我试着在这里阅读:encpp ref并且它没有说明订单(或者我错过了它?)
答案 0 :(得分:4)
是的,订单无关紧要。在C ++中,相关规范在7.1p1, decl-specifier 和 decl-specifier-seq 中,基本上解释了有一系列相关的关键字和7.1。 6,将const
和volatile
列为两个关键字。请注意,制作很奇怪,这些也是有效的,但为了便于阅读,我强烈建议不要这样做:
const int volatile a = 1;
volatile int const b = 2;
const int volatile typedef vcint; // defines vcint to be an alias for const volatile int