パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

スラドに聞け:いま使っている言語の仕様、把握している?」記事へのコメント

  • モバイルギア(WindowsCE機)のアプリケーションを
    開発していたときに、C のソースで構造体を使ったら
    何をやってもハードウェア例外発生。
    MIPS ではデータ配置が 4バイトとの倍数というルールを知らなかった。
    けっきょくダミーバイトを埋め込んで解決したけど、未熟だったなあ。
    構造体の配置 [microsoft.com]

    • by Anonymous Coward on 2016年08月24日 17時47分 (#3069119)

      未熟だったのはコンパイラでは?
      構造体のパディングとかの環境依存な処理はコンパイラの仕事です。

      親コメント
      • by miyuri (33181) on 2016年08月24日 20時33分 (#3069221) 日記

        x86とMSVC6PP5辺りでの事だけど、構造体のメンバに__m128な変数を定義した場合、その__m128な変数は16バイト境界に合わない場合が有ったような気がするする。
        __declspec(align(16))とはいったい...。

        親コメント
      • by Anonymous Coward

        それを具体的にどう処理するかは未定義なんじゃないの?

        • by Anonymous Coward

          6.7.2.1/12 読んでから言え

        • by Anonymous Coward

          (構造体を正しく動作するように処理する限りにおいては)具体的にどのようにパディングしてもC言語の仕様を満たす。

          • by Anonymous Coward

            仕様は満たしてるけどトラップ発生するんでしょ。

            • by Anonymous Coward

              構造体を正しく動作するように処理する限りにおいては)

              を満たしてないからダメでしょ。

      • by Anonymous Coward

        構造体を未定義な使い方してただけじゃね。
        バイト配列を何も考えずに構造体にキャストしたとか

犯人はmoriwaka -- Anonymous Coward

処理中...