タグ

cに関するnyon2のブックマーク (3)

  • SFB7 - Diary » memcpyでアラインメント違反

  • ARM gcc バッドノウハウ集

    Kunihiko IMAI <bak@d2.dion.ne.jp>2009 年 1 月 11 日 ARM gcc にまつわるいやらしい現象とその対策をまとめてみました. 1. はじめに 2. 責任の放棄 3. 想定している読者と環境 4. アラインメント 4.1 アラインメント条件を満たさないと 4.2 由緒正しい対策 4.3 バッドノウハウな対策 5. パディング 5.1 例 5.2 由緒正しい対策 5.3 バッドノウハウな対策 6. char 型 6.1 例 6.2 由緒正しい対策 6.3 バッドノウハウな対策 7. soft fp と hard fp 7.1 一般的な問題 7.2 ARM 固有の問題 8. EABI と legacy ABI 8.1 ABI とは 8.2 ABI の種類 8.3 違い 8.4 見分けかた 8.5 Debian での対応状況 8.6 影響と対策 8.7

  • [迷信] とりあえず memset で初期化 | 株式会社きじねこ

    よく見かけるコードですが、上のコードは、必ずしも期待した結果になるとは限りません。なぜなら、double 型やポインタ型は、これらを構成する全ビットが 0 になったとしても、オブジェクトの値が 0 になるかどうかは分からないからです。 確かに、ほとんどの処理系では上記のコードでも問題なく、そして期待通りに動作します。しかし、それはあくまでも"たまたま"動いているに過ぎません。そうした不安定な要素をなくすために行った初期化が、かえってコードを怪しくしてしまっているのです。 単に、集成体の全要素をゼロクリアしたいだけであれば、 とすれば十分です。こう書くと、おそらく次のような反論が返ってくることでしょう。「その方法では、構造体の詰め物がゼロクリアされない」と。しかし、構造体の詰め物にアクセスして、言語仕様上保証される結果を期待することには無理があります。 構造体の詰め物をゼロクリアしたい理由は

  • 1