2

以下代码编译并运行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它没有说明订单(或者我错过了它?)

4

1 回答 1

4

是的,顺序无关紧要。在 C++ 中,相关规范在 7.1p1、decl-specifierdecl-specifier-seq中,它们基本上解释了存在相关关键字的序列,而 7.1.6 将constvolatile作为这两个关键字列出。请注意,生产很奇怪,这些也是有效的,但为了可读性,我强烈建议不要使用它们:

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
于 2014-06-20T10:31:30.303 回答