謎's キッチン

謎のひとりごと。Amazon欲しい物リストはこちら: https://www.amazon.co.jp/hz/wishlist/ls/CCPOV7C6JTD2

ヘッダ変換

pngが使いたいがenvisionを書き直したやつだとSEGVが起きるので書き直そうとヘッダ変換してみることにした。
プリプロセッサがうざいので-Eで外すことにした。
test.c:


#include

gcc -E -dD test.c > test.ci #プリプロセッサの展開&マクロは残す
h2d test.ci > test.di
問題点がいくつか。

  • castが古い形式
  • typedef struct xx_tag{}xx;がalias struct xx_tag{}xx;になる(struct xx_tag{};xx_tag xx;としなければならなかったはず)
  • 関数の引数のconst char*等のconstを取ってくれない
  • 二重に宣言がある場合前のを取ってくれない(削除するのは前のでいいんだっけか…?)
  • __builtin_va_listが無い(というかgcc -Eで展開しすぎてるから仕方ないけど。宣言削ればok。)
  • #defineがごっそり削除される

面倒臭いなぁ…
svnからh2dの最新版取ってくるか書き換えてみるかな…