我使用下一种方法来获取C++中数字的字节表示形式:

template< class T >
union u_value
{
  T value;
  unsigned char bytes[  sizeof( T ) ];
}

请告诉我,这是真的吗?如果不是,为什么以及如何获取呢?

最佳答案

不是正确的方式。这种方式不可移植,并且经常可能导致不确定的行为。因为,

  • 填充(由编译器完成)被忽略
  • virtual函数没有明显留出多余的空间(如果T是多态的)
  • 关于c++ - 数字的字节表示,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6703788/

    10-12 07:36