複数行コメント(マルチラインコメント、ブロックコメント)は、単に文章を書くほかに、一部コードをコメントアウトするようなことにも使う。
ところが、PICのアセンブラ、MPASMにはその機能が無い。代用法がネット上にあったので、日本語で備忘としておく。
● if文
if 0 movf INDF,w call subRoutine ;プログラムでもコメントでも 生のテキストでも何でもOK endifif文で条件不成立の状態を作れば、その中身はまるごと無視される。
MPASMでのif文は、0=偽、らしい。「if 1==0」のように、ひと目で偽と判る書き方でも可。
なおif文は、1文字目に書くと「Found directive in column 1. (if)」というワーニングが出る。
● #ifdef文
#ifdef hoge movf INDF,w call subRoutine ;プログラムでもコメントでも 生のテキストでも何でもOK #endif#ifdefでも同様なことができる。
このプロジェクト内で、「hoge」というラベルが定義されてないことが必要。
#ifdefは、1文字目に書ける。
● /*..*/ (じつは使えない)
/* movf INDF,w call subRoutine ;プログラムでもコメントでも 生のテキストでも何でもOK */C言語と同じ記述だが使えない。
エディタ上ではコメント行として扱われ、コメント行の色に変わる。しかしアセンブルすると、コメントアウトされずにエラーになる。
エディタのバグ、という声もあるが、C言語らも扱う統合環境下のエディタなので仕方ないかも。
ここでの表示色は、MPLAB Xと同じにしてある。
前者2つは機能するが、見た目は変わらない。見通せないほど大きなブロックをコメントアウトする場合には、思わぬミスを誘発しかねない。
各2行記述になって少々ウザいが、最後者も併用して見た目も変えた方がいいかもしれない。
#ifdef hoge /* movf INDF,w call subRoutine ;プログラムでもコメントでも 生のテキストでも何でもOK */ #endif
エレガントな記述法は、随時募集中。
景品はありません。
0 件のコメント:
コメントを投稿
.