掲示板一覧   -   トピック一覧
   EA ソースコード生成・コード生成テンプレート
     C言語の#defineの形式を変更したい


フラット表示 前のトピック | 次のトピック
投稿者 トピック
sugimoto
投稿日時: 2011-10-13 15:29
EA Administrator
投稿: 1895

C言語の#defineの形式を変更したい

サポートに寄せられたご質問の要約です。

○ご質問

操作の「戻り値の型」欄に"#define"を設定し、
パラメータに「 0x1001」を設定して、
以下のようなコードを生成しています。
------------------------
#define 操作名 ( 0x1001)
------------------------
別の最適な方法がありましたら教えてください。

○回答

以下の手順を行ってください。
1)操作のプロパティ画面を開いて「戻り値の型」から#defineを削除してください。
2)「タグ付き値」グループを開き、上部の「新規タグ付き値」アイコンをクリックし、
 タグ欄にdefine、値欄にtrueと設定しOKボタンを押してください。
(この内容はヘルプ「Cの追加情報」にも記載があります。)

○ご質問(続)

1) "("の後にスペースを入れないとコンパイルエラーが出てしまいます。
 パラメータにスペースを入れ込むことにより対応できるのですが、
 もう少し簡単な方法はないでしょうか?

2) 下記のように、定義名と定義名コメントを表示することは可能でしょうか?
 #define 操作名 ( 0x1001) //起動要求

○回答(続)

1)コード生成テンプレートをカスタマイズし、スペースを挿入するようにすることで、
 ソースコード生成のタイミングでスペースを自動的に生成することが可能です。
 C言語の「Operation Declaration」テンプレートの5行目で、
 #define文を生成していますが、この行を以下のようにカスタマイズしてください。

 #define %opName%(%list="Parameter" @separator=", " @indent=" "%) %opCode%

 具体的には、リストマクロにインデントでスペースを指定(@indent=" "の部分)しています。
 リストマクロの文法は、ヘルプ「制御マクロ」に記載がございます。

2) 上記1)を以下のようにカスタマイズしてください。

 #define %opName%(%list="Parameter" @separator=", " @indent=" "%) %opCode% //%opNotes%

 1)に対して、操作のノート(//%opNotes% の部分)を追加しています。


ソースコードの生成ルールのカスタマイズ方法は、PDFファイルやセミナーで紹介しています。

PDFドキュメントはこちらです:
https://www.sparxsystems.jp/ea_documents.htm
の「コードテンプレートフレームワーク(CTF) 機能ガイド」

セミナーの情報はこちらです:
https://www.sparxsystems.jp/seminar/EACodeGenerate.htm
(セミナーの内容を録画したメディアをお送りするサービスも実施しています。)
フラット表示 前のトピック | 次のトピック

題名 投稿者 日時
 » C言語の#defineの形式を変更したい sugimoto 2011-10-13 15:29