【发布时间】:2014-03-20 17:34:59
【问题描述】:
谁能告诉我为什么函数参数不能是static?
这是在Stack 上声明函数参数并在函数返回时被取消分配的原因吗?有没有办法保留参数值?只是困惑。请澄清。
谢谢。
【问题讨论】:
标签: static function-parameter c++-concepts
谁能告诉我为什么函数参数不能是static?
这是在Stack 上声明函数参数并在函数返回时被取消分配的原因吗?有没有办法保留参数值?只是困惑。请澄清。
谢谢。
【问题讨论】:
标签: static function-parameter c++-concepts
关键字static 可能被视为有些“过载”。
以下使用选项都是可行的:
就运行时而言,所有类型的静态变量本质上是相同的。它们都驻留在程序的数据部分中,并且它们的地址在整个程序执行过程中保持不变。所以它们之间的唯一区别是在编译期间,在声明的范围内:
就运行时而言,所有类型的函数(静态和非静态)本质上是相同的。它们都驻留在程序的代码段中,并且它们的地址在程序的整个执行过程中保持不变。所以它们之间的唯一区别是在编译期间,在声明的范围内:
关于您的问题,参数被传递给堆栈中的函数。让它们static 毫无意义,因为这会有效地将它们放在数据部分中。如果它们位于数据部分,那么函数可以简单地从那里读取它们,而不是让它们在堆栈中传递给它。
【讨论】:
warning C4042: 'i' : has bad storage class。也许这是 C++11 中的一个新特性,但肯定不是我所知道的......
static 在这里的意义?我可以说放置静态是没有意义的。我可以说 static 关键字在函数参数列表中无关紧要吗?
<code>static</code>是什么意思。
static关键字,如@987654326@中所做的那样