旧・無印吉澤

昔はてなダイアリーに書いていた記事のアーカイブです

ecpgの罠(2)

こちらもホスト変数の話。EXEC SQL BEGIN DECLARE SECTION; と EXEC SQL END DECLARE SECTION; で囲まれたホスト変数定義部分の中でtypedefで定義した型など(多分structとかも駄目だった気がする)を使うと「そんな型は無い!」とエラーが出ます。

例えば、<netinet/in.h>に含まれているin_port_tをホスト変数の型に使うとエラーが出ますが、in_port_tが実際に示すunsigned short intを型に使うと無事にコンパイルを通る……ということがありました。

ちなみに、typedef宣言はそのホスト変数定義と同じファイル上でやっても同じ事でした。ホスト変数には基本的な型をそのまま使うしかないようです。