タグ

cとalignmentに関するtyruのブックマーク (1)

  • 境界調整(アラインメント)を調べる::実装技術

    2005-08-14 組み込み開発では、しばしば型の境界調整への配慮が必要になってきます。ところが、境界調整の要求サイズは完全に処理系に依存しますし、境界調整を調べるための専用かつ標準的な機能もないのが現状です。 確かに境界調整を調べるための専用の機能はありませんが、既存かつ標準の機能の組み合わせで調べるための方法はあります。残念ながら、この方法はCとC++では異なるものになってしまいます。この辺りはCとC++の微妙な非互換性に起因しているのです。 まずはCの場合についてです。これは<stddef.h>で定義されているマクロoffsetofを使うことで実現できます。 #define alignof(type) offsetof(struct { char a; type b; }, b) char型と調べようとする型のフィールドからなる構造体を使って、調べようとする型のオフセットを調べれば

  • 1