0

可能重复:
memcpy 与 C 中的分配

我想知道将一个大结构(例如 100 字节)自动变量分配为零而不是在 C 的运行时将它设置为零是否会提高性能。不确定 gcc 编译器是否可以在编译时进行优化这个

下面是两个案例

情况1:

void fun1()
{
   struct S y = {0};
}

案例二:

void fun1()
{
  struct S y;
  memset(&y, 0, sizeof(y));
}
4

2 回答 2

4

gcc 几乎肯定会比你更好地处理这个问题,这可能不是你系统性能的瓶颈,所以你不应该担心尝试优化它。

于 2012-05-06T05:51:59.877 回答
0

这几乎是C 中 memcpy 与赋值的完全相同

赋值几乎总是比直接内存操作好(更不用说更冗长了)。毕竟,代码是用来阅读的。不仅仅是写的。

于 2012-05-06T05:56:55.140 回答