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