フォーマット化
SymbolicCは,生成されたCの出力を自動的にフォーマットする.このセクションでは,出力に自分自身のスタイルを付けるためのフォーマットの方法について見ていく.
原子入力
変数や数字等の原子入力は,一般的な Mathematica の入力あるいは文字列として渡すことができる.
まずパッケージをロードしなくてはならない.
変数は Mathematica 記号として入力することができる.ToCCodeStringがCにフォーマットされた出力を作成する.
| Out[2]= |  |
変数は Mathematica の文字列として入力することもできる.
| Out[3]= |  |
整数は直接入力することができる.
| Out[4]= |  |
浮動小数点数も直接入力できる.
| Out[5]= |  |
数字は指数表現を使った出力であることがある.
| Out[6]= |  |
もちろん文字列を使って結果を作成することもできる.
| Out[7]= |  |
数値の型を指定したい場合には,CConstantを使うとよい.
| Out[8]= |  |
文字列
CStringのラッパを使って文字列をCコード内に出力することができる.
まずパッケージをロードしなくてはならない.
Cの文字列を作成する.
| Out[2]= |  |
コメント
さまざまな方法でコメントの形式を変更することができる.
まずパッケージをロードしなくてはならない.
コメントを出力する.コメントの内容の前後にはスペースが入れられる.
| Out[8]= |  |
コメントの前にスペースを入れて,結果をその後に表示させることができる.
| Out[10]= |  |
文と式
SymbolicCは,文(何も返さない)と式(結果を返す)を区別しようとする.
まずパッケージをロードしなくてはならない.
宣言等の文を文字列に変換する場合,以下のように文の最後にセミコロンと改行が入れられる.
| Out[2]= |  |
式がフォーマットされる場合には,セミコロンや改行は加えられない.
| Out[3]= |  |
セミコロンと改行を加えたい場合は,引数をリストの中に置くとよい.
| Out[4]= |  |
| Out[5]= |  |
ブロックに文を入れたい場合はCBlockを使うとよい.
| Out[6]= |  |
CBlock等のコンストラクトは,その引数を文に自動的に変換する.
CExpression
CExpressionによって,Mathematica のフォーマット化の関数CFormを使って生成したCコードを含むことができる.
まずパッケージをロードしなくてはならない.
結果はCFormによって生成される.
| Out[2]= |  |
以下のSetの式のように入力が評価する場合は,HoldFormを使わなくてはならない.
| Out[3]= |  |
引数をリストに挿入することによって,セミコロンを入れることができる.
| Out[4]= |  |