任何人都可以告诉我为什么函数参数不能是static
?
这是函数参数在Stack
上声明并在函数返回时被解除分配的原因吗?没有办法保留参数值?只是困惑。请澄清。
感谢。
答案 0 :(得分:0)
关键字static
可能会被视为有些过度"重载"。
以下用法选项都是可行的:
就运行时而言,所有类型的静态变量基本相同。它们都位于程序的数据部分中,并且它们的地址在程序执行期间保持不变。因此,它们之间的唯一区别是在编译期间,在声明范围内:
就运行时而言,所有类型的函数(静态和非静态)基本相同。它们都驻留在程序的代码段中,并且它们的地址在程序执行期间保持不变。因此,它们之间的唯一区别是在编译期间,在声明范围内:
关于你的问题,参数被传递给堆栈中的函数。拥有static
是没有意义的,因为这会将它们有效地放在数据部分中。如果它们位于数据部分中,那么函数可以简单地从那里读取它们,而不是将它们传递给堆栈中。