以下代码编译并运行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它没有说明订单(或者我错过了它?)
是的,顺序无关紧要。在 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