sprintfの第二引数で指定する文字列は、文字列定数を指定する必要があります。
OKなパターン
sprintf( TmpBuff, "test%d", 10 ); |
NGなパターン
char pMsg[] = "test%d"; sprintf( TmpBuff, pMsg, 10 ); |
これは、以下の理由に起因します。
・PICはハーバードアーキテクチャを採用している。
・文字列定数はプログラムメモリ、文字列の配列はファイルレジスタに保存される。
・sprintf()の第二引数は、プログラムメモリの番地を指定する必要がある。
というわけで、変数指定はNGです。
関連記事
コメントを残す