質問: 「置換名前」にdoubleやint等のc言語のデータタイプを入力すると、エラーが出力されるのはなぜですか? コンフィギュレーションパラメータの「コード生成」→「データ型置換」ペインで「生成コード内のデータ型名を置換する」にチェックを入れ、「置換名前」にdoubleやint等のc言語のデータタイプを入力すると、エラーが出力されます。 (エラーメッセージ) 'double/real_t'('コード生成/データ型置換'ページ)に対して入力された値が無効です。'double'はcのキーワードであり、置換タイプとして使うことはできません。 入力された値:'double' 前の値:"
回答: 置き換えるデータタイプ名に対してdoubleやint等のc言語の予約語を指定することはできません。 使用できない予約語(予約キーワード)に関しては、次の url にまとまっています。 [予約キーワード] https://jp.mathworks.com/help/releases/r2021a/ecoder/ug/reserved-keywords.html embedded coder独自のデータタイプからc言語の予約語に変更したい場合は、コード生成後にcコードの編集を行う必要があります。 回答上部に添付されているサンプル ・changeint16.slx ・ert_make_rtw_hook.m ・rtw2c.m では、ユーザ独自の処理を実行するためのert_make_rtw_hook.mを使用し、コード生成後に文字列を置換する処理を行っています。 ert_make_rtw_hook.mは下記フォルダに保存されています。 ※ matlabrootは matlabのインストールディレクトリを表します。 matlabroot/toolbox/coder/embeddedcoder コード生成を行うと、changeint16.cとchangeint16.hのint16_tがshortに置換されます。 ert_make_rtw_hook.mは、101行目のafter_tlcがコード生成後に呼ばれる処理を記述する部分となりますので、ここでrtw2c.mを呼び出しています。 rtw2c.mでは、ファイルの別名保存や文字列の置換処理を行っています。 本件に関するヘルプドキュメントは、下記urlよりご覧下さい。 ● simulink coderヘルプドキュメント:stf_make_rtw_hook ファイルによるビルド プロセスのカスタマイズ http://www.mathworks.co.jp/jp/help/rtw/ug/customizing-the-target-build-process-with-the-stf-make-rtw-hook-file.html