【发布时间】:2017-12-14 09:45:24
【问题描述】:
struct A {
int a;
.
.
.
int b;
} obj;
const ptrdiff_t diff = &obj->b - &obj->a;
diff 是否总是包含一个即使程序运行多次也不会改变的常量?
diff 是否总是积极的?
有没有办法在编译时获得这种差异? (人工计数除外)
【问题讨论】:
-
是的,是的,编译器可能会这样优化它。
-
C 还是 C++?您使用哪种实际语言进行编码,请不要无缘无故地用 C 和 C++ 标记问题。 C 不是 C++ 不是 C。
-
我用 C++ 编写代码,但我认为这对两者都有关系。
-
@Yashas 的答案可能与两者都相关,问题不应期望两种语言的答案相同。如果你愿意,可以提出两个问题,一个用 C 做,一个用 C++ 做,但不能同时做这两个问题,这样会产生一个过于宽泛的问题。
标签: c++ struct memory-address compile-time