複雑なマクロにエディタからエラーが出る
投稿:2013-05-10
バイナリ埋め込み用のマクロをこんな感じで使います。
#include "ksrk.h" KSRK_INJECTION(wave, "maguro.wav");そうするとエディタの文法チェックが「Syntax error」を出します。 コンパイルはエラーなしで通りますからエディタだけの指摘です。
Cの(プリプロセッサの)マクロはこうなっています。
// ファイルをオブジェクトに埋め込んで前後にラベルを追加 // ラベルの種:label // ファイル:file // 先頭:label_head // 末尾:label_tail #define KSRK_INJECTION(label, file) \ asm (\ " .global "#label"_head \n"\ " .global "#label"_tail \n"\ " .section .rodata, \"a\" \n"\ #label"_head: \n"\ " .incbin \"../src/"file"\" \n"\ #label"_tail: \n"\ )
多分こんな感じに展開していると思います。
展開後の状態ならエディタもエラーにしないでしょう。
#include "ksrk.h" asm (\ " .global wave_head \n"\ " .global wave_tail \n"\ " .section .rodata, \"a\" \n"\ "wave_head: \n"\ " .incbin \"../src/magro.wav\" \n"\ "wave_tail: \n"\ );試しに上記コードをエディタに貼ってみると、こちらは正常でした。
ありません。ほっ