我知道C中的存储类.我想知道auto关键字.
在以下表达式中,
auto int i = 0;
Run Code Online (Sandbox Code Playgroud)
auto是存储类说明符,int是数据类型.
但如果我们写:
int auto i = 0;
Run Code Online (Sandbox Code Playgroud)
怎么了?被auto表现为数据类型?
的存储类说明符(排序extern,static,register,auto,typedef)相对于类型说明符(int,double,char等)并不重要.两者都有效并声明相同的对象.
然而,遵守某个顺序被认为是一种好的做法.声明符之前的说明符限定符列表(i在您的情况下)由不同的关键字组组成,这些关键字最好按以下顺序使用:
static,extern,auto,register,typedef,_Thread_local(C11);const,volatile,restrict,signed,unsigned,short,long,int,char,double,float,等.遵循该规则将导致更可读的声明,如下所示:
static const volatile unsigned long int a;
Run Code Online (Sandbox Code Playgroud)
而不是(一个极端的例子):
unsigned volatile int static const long a;
Run Code Online (Sandbox Code Playgroud)