33得票2回答
ptrdiff_t能够表示同一数组对象中指针之间的所有减法操作吗?

对于从指向同一数组对象的指针i和j的减法操作,在[expr.add#5]中的注释如下所示: [注意:如果值 i-j 不在类型std :: ptrdiff_​​t可表示值的范围内,则行为未定义。 ——结束说明] 但是,鉴于[support.types.layout#2],其中指出(强调...

8得票5回答
结构体成员之间的指针差异?

C99标准规定: 当两个指针相减时,它们必须指向同一个数组对象的元素或者是该数组对象中的最后一个元素之后 考虑以下代码: struct test { int x[5]; char something; short y[5]; }; ... struct t...

7得票4回答
我们能否减去空指针?

由于指针算术是在同一数组中定义的,所以我怀疑我们是否可以将NULL从另一个NULL中减去。我担心以下实现: //first and second can both either be from the same array //or be both NULL prtdiff_t sub(v...

7得票3回答
size_t和ptrdiff_t的大小和对齐方式相同吗?

在我的平台上(以及我认为大多数平台上),std::size_t和std::ptrdiff_t具有相同的大小和对齐方式。是否存在这样不一致的平台?简而言之:这是标准要求的吗?