本地函数变量初始化需要处理时间吗?例如:本地函数变量初始化需要处理时间吗?
void foo (void) {
char *str = "hello";
int num = 3;
}
或者像全局变量一样,它们的值已经在二进制文件的只读部分中被赋值了吗?
换句话说:调用一个有很多局部变量的函数,比较一个没有函数的函数会耗时吗?
编辑: 我看到很多人在这里感到愤怒,因为它似乎我试图优化我的代码在一个非常挑剔的/糟糕的方式,这不应该被考虑。我知道这一点。我问这个问题只是为了理解事情的行为和功能,而不是为了优化的原因。谢谢。顺便说一句,也许我的代码是在一个低功耗的MCU上?考虑其他选择,PC不是唯一的选择。
指定一个变量可能需要1到4条指令。在1Ghz的处理器上,这只会持续大约1至4纳秒。 – Pace 2010-01-30 19:52:45
您将定义多少个局部变量? 3百万呢?在注意到相当长的时间之前,您将用尽堆栈空间。不要专注于微观优化。 – kennytm 2010-01-30 19:52:45
每当我看到像这样的东西时,我都会生气。显然这需要时间。您必须分配一个变量并设置字符串中的所有字符。这个问题没有定量。学习使用一个分析器,它是唯一的方法来看看你是否应该关心那种开销,它取决于整个特定的程序。你在准确回答什么问题? – 2010-01-30 19:55:54