将 double 数组的内存(使用memset(…, 0, …))或包含 double 结构的结构的内存归零是否合法?
这个问题意味着两件事:

  • 从C标准的 Angular 来看:这是未定义的行为吗? (我认为,在任何特定平台上,这都不能是未定义的行为,因为它仅取决于浮点数在内存中的表示,仅此而已。)
  • 从实用 Angular 来看:在Intel平台上可以吗? (无论标准说什么。)
  • 最佳答案

    C99标准附件F表示:

    并且,紧接在:

    因此,由于IEC 60559基本上是IEEE 754-1985,并且因为它指定8个零字节表示0.0(如@David Heffernan所说),所以这意味着如果找到已定义的__STDC_IEC_559__,则可以安全地使用memset进行0.0初始化。

    关于c - 在 double 数组上使用memset(...,0,...)是否合法?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4629853/

    10-17 00:33