とくにあぶなくないRiSKのブログ

危ないRiSKのブログだったかもしれない。本当はRiSKだけどググラビリティとか取得できるIDの都合でsscriskも使ったり。

文字定数およびオフセット

ジャアクなC
ときどきの雑記帖 i戦士篇 2009年1月(上旬)

Useless but pretty definitions of BOOLs (BOOL値の役に立たないけど prettyな定義)

#define TRUE '/'/'/'
#define FALSE '-'-'-'

うけたw
for (;'-';) /* 無限ループで悲しい;;*/
みたいな感じだな。

Struct/class offsets (構造体/クラスのオフセット)

int ofs = (int)&((Class*)0)->element;

[Vilhelm S. comments: Note that provides an offsetof(type, field_name)
macro, so you can leave the dirty work of abusing NULL pointers in perverted ways to
your standard library implementor! (The typical implementation of it is as above,
though...)]
Vilhelm S.によるコメント: にoffsetof(type, field_name) マクロがあるので
in perverted ways to your standard library implementor
ナルポインターを誤用したdirty workをする必要はありません
(とは言え典型的な実装は上で挙げた例のようなものなんですけどね)。

たしか「誤用」ではなかったような。
実行時にヌルポインタへアクセスするわけではないからなぁ。
「offsetofマクロ使え」はそのとおりだけど。