【发布时间】:2021-06-04 19:44:49
【问题描述】:
我试图理解为什么在 ProcessHacker 代码中使用这种转换风格。
RtlSetHeapInformation(
PhHeapHandle,
HeapCompatibilityInformation,
&(ULONG){ HEAP_COMPATIBILITY_LFH }, // HEAP_COMPATIBILITY_LFH = 2UL
sizeof(ULONG)
);
使用“{}”进行强制转换有什么好处?它可以在 C 和 C++ 中使用吗?
&(ULONG){ HEAP_COMPATIBILITY_LFH }, // HEAP_COMPATIBILITY_LFH = 2UL
【问题讨论】:
-
简化宏。对于标量类型和结构,您可以使用相同的方案。 'int x=5;'和'int x = {5};'是一样的
-
你为什么在这里标记C++?
-
@phuclv 这个问题询问它是否对 c++ 有效
标签: c++ c literals function-call compound-literals