对于从指向同一数组对象的指针i和j的减法操作,在[expr.add#5]中的注释如下所示: [注意:如果值 i-j 不在类型std :: ptrdiff_t可表示值的范围内,则行为未定义。 ——结束说明] 但是,鉴于[support.types.layout#2],其中指出(强调...
C99标准规定: 当两个指针相减时,它们必须指向同一个数组对象的元素或者是该数组对象中的最后一个元素之后 考虑以下代码: struct test { int x[5]; char something; short y[5]; }; ... struct t...
由于指针算术是在同一数组中定义的,所以我怀疑我们是否可以将NULL从另一个NULL中减去。我担心以下实现: //first and second can both either be from the same array //or be both NULL prtdiff_t sub(v...
在我的平台上(以及我认为大多数平台上),std::size_t和std::ptrdiff_t具有相同的大小和对齐方式。是否存在这样不一致的平台?简而言之:这是标准要求的吗?