为什么函数没有静态参数?

时间:2012-08-04 21:00:02

标签: c

以下是c。

中的代码
     fact(2);
     void fact(static int i)
     {..}

输出:错误不能有静态参数
  那么为什么我们不能在函数中使用静态参数呢?

2 个答案:

答案 0 :(得分:11)

static关键字表示变量在其范围内可能只有一个实例,并且该实例在其范围之外是不可见的。这些要求对于函数参数都没有意义:它可以被多次调用,在不同的内存地址被调用,并且由于它用于通信,它必须对外部世界可见。

答案 1 :(得分:8)

尝试将static应用于参数没有多大意义,因此标准不允许它(§6.7.5.3/ 2:“参数中唯一的存储类说明符声明是register。“)