变量的const和volatile的顺序

Order of const and volatile for a variable

本文关键字:顺序 volatile const 变量      更新时间:2023-10-16

使用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-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