【发布时间】:2011-08-04 04:30:23
【问题描述】:
int *pt = 0;
long i = reinterpret_cast<long>(pt);
我保证为0吗?这是定义明确的还是实现定义的? 我检查了 c++ 标准,但它只声明
指向数据对象或函数的指针(但不是指向成员的指针)可以转换为任何大到足以包含它的整数类型。
在这种情况下,pt 不指向任何数据对象。该规则是否适用于本案?
【问题讨论】:
-
它充其量是实现定义的,因为
long可能没有“大到足以包含”转换后的指针值。
标签: c++ type-conversion reinterpret-cast