以下是c中的代码.
fact(2);
void fact(static int i)
{..}
Run Code Online (Sandbox Code Playgroud)
输出:错误不能有静态参数
那么为什么我们不能在函数中有静态参数?
小智 12
static关键字意味着变量在其范围内可能只有一个实例,并且该实例在其范围之外是不可见的.这些要求对于函数参数都没有意义:它可以被调用多次,在不同的内存地址,并且因为它用于通信,它必须对外部世界可见.
尝试应用于static参数没有多大意义,因此标准不允许它(§6.7.5.3/ 2:"在参数声明中应该出现的唯一存储类说明符是register.")