【问题标题】:Is this code Endian safe?这个代码Endian安全吗?
【发布时间】:2015-07-30 06:10:48
【问题描述】:

我正在测试可能的 Endian 问题的代码和平。代码是为 ppc 编写的,现在需要在 x86 机器上运行。

string Mac = nodeMessage->getMac();
char mac_string[17];
strncpy(mac_string, Mac.c_str(),16);

【问题讨论】:

  • 您面临的问题是什么?

标签: c++ endianness


【解决方案1】:

机器的字节序会影响超过一个字节宽的整数值。我在那里看不到任何整数值。因此,我没有看到与上述代码相关的任何字节顺序问题。

【讨论】:

  • 我看到了 17 个整数,但同意了。
【解决方案2】:

如果您只处理 1 字节字符(ASCII),那么它的 Endian 是安全的,否则它不是。

以下链接可能会有所帮助。

Encode/Decode std::string to UTF-16

【讨论】:

    【解决方案3】:

    完成R Sahu的回答,问题可能出在nodeMessage以及它如何管理mac(我猜是指mac地址)。

    【讨论】:

      猜你喜欢
      • 2023-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-29
      相关资源
      最近更新 更多