编译器 - Mingw gcc 操作系统 - Windows 10
声明1:
void fun(auto int a){} // statement 1 - Error!
声明2:
void fun(static int a){} // statement 2- Error!
陈述3:
static void fun(auto int a){} //statement 3- Error!
陈述4:
void fun(register int a){} // statement 4-No error(Valid)
为什么语句1,2和3生成编译时错误但语句4不生成?
在函数中的形式参数中使用auto时有什么问题?
以下是错误输出:
错误:为参数'a'指定的存储类 void fun(auto int a)
答案 0 :(得分:3)
因为标准是这样说的。见 6.7.6.3p2 :
参数声明中唯一的存储类说明符是
[i]
。
存储类说明符通常对函数参数没有意义。
答案 1 :(得分:1)
requires: []
关键字在该程序中所做的全部是它告诉编译器(基本上)'嘿,我在这里有一个变量,我不希望任何其他人访问,不要告诉其他人它存在”。
唯一存在于参数中的存储类说明符 声明是注册。
强文