![]() |
1
2
这些是否会被视为相同,这取决于实现。同时编译代码并检查程序集输出,以查看编译器如何处理这两种情况。 在我为之开发的嵌入式系统上,我像您一样添加了一个“中间”指针,并看到函数执行时间明显加快。在我的例子中,编译器每次都从头开始重新计算指针链,并没有优化它们。您的编译器可能不同,唯一真正的方法是尝试两种方法并测量执行时间。 |
![]() |
2
3
除非某些中间结构成员已标记 不稳定的 , the compiler should treat your two examples as equivalent. I would prefer your second code sample just because it looks cleaner. |
![]() |
3
2
I'm pretty sure your compiler will optimize the two to the same code as gcc does. 您可以很容易地通过为这两者生成汇编程序代码(在gcc中使用-s开关)并比较它们来检查这一点。 |
![]() |
MaPo · Linux,设置锁定ICMP_过滤器选项 4 月前 |
![]() |
Doohyeon Won · 内联函数上的奇怪现象?[关闭] 4 月前 |
![]() |
Bobby · 复合字面值总是左值吗? 5 月前 |
![]() |
9-Pin · C: 嵌套结构的堆栈内存分配 5 月前 |