2010年08月のlog
>> Site top >> weblog >> 月別アーカイブ >> 2010年08月のlog
最終更新日付:2010/08/01 00:00:00
コンパイル時点での構成体サイズチェック
2010 年 08 月 01 日
仕事をしていると、プライベートな開発ではあまりやらないことをやる。これもそのひとつだ。ある決まった長さのベタ詰めの文字列が何処かから飛んできて、それをさらに決まった部分文字列に分けて構造体のように扱う必要がある。大抵の場合、char 型配列のメンバがずらりと並んだ構造体を用意して、あたえられた文字列の先頭ポインタをキャストして使うことになるだろう。以下のように。
struct Record { char item1[16]; char item2[8]; char item3[24]; char item4[8]; }; void foo( const char* pData ) { const Record* pRecord = (const Record*)pData; // : // : // : }
ここで問題になるのは、「何処かから飛んでくる」データの長さだ。上の Record 構造体のサイズはそれに合わせておく必要があるが、こういうのは変動したりするし、そうでなくても人間の目でチェックするのは面倒だしミスの元にもなる。機械的なチェックがしたいわけだ。
iPhone 版 「おやじのための自炊講座」
2010 年 08 月 01 日
宣伝で恐縮だけど、マイカ出版のiPhone 版電子書籍「おやじのための自炊講座〜おやじの旬魚旬菜」が本日発売。
- おやじのための自炊講座〜おやじの旬魚旬菜
異環境データのためのデータ抽象
2010 年 08 月 21 日
以前、「コンパイル時点での構成体サイズチェック」という記事を書いた。今回は、その続編とでもいうべきお話。
Copyright(C) 2005-2021 project-enigma.
Generated by CL-PREFAB.