![]() |
1
6
使用GCC/Clang'asm'构造在GCC和Clang以及其他支持GCCs扩展程序集语法的编译器中,可以执行以下操作:
那个
使用标准C考虑一下这一点:
目的
因此,对象具有不确定的值。然后是指针是否具有陷阱表示的问题。如果指针在所使用的C实现中没有陷阱表示,那么仅仅引用该值不会出现陷阱,就像将其作为参数传递一样。
这个
result with Clang 6.0.0 at Compiler Explorer
是一个
|
![]() |
2
2
这是你应该做的。你什么都不用付钱。将an归零
|
![]() |
3
2
由于一个很好的原因,这实际上不可能在所有体系结构中都实现。 对函数的调用可能需要将其参数溢出到堆栈,而在IA64中,将未初始化的寄存器溢出到堆栈可能会 崩溃 因为之前寄存器的内容是推测性加载,加载了未映射的地址。 |
![]() |
4
1
防止每次运行
|