私はPICマイクロコントローラ用の汎用UARTモジュールを開発しようとしています。私がしようとしているのは、使用中のUARTを定義し、プリプロセッサに他のマクロ(レジスタ名)で自動的に置き換えることです。Cプリプロセッサマクロの置き換え
ような何か:
#define UART 5
#define UART_RXREG U ## UART ## RXREG
それはUUARTRXREG
代わりのU5RXREG
に膨張する。これは、動作しません。
これを行う方法はありますか、それとも単純に不可能ですか?
私は単純な文字列の連結を探しているわけではありません。 UARTマクロを最初に展開する必要があります。
あなたがそれをサポートしているプリプロセッサを使用する場合、それは正常に動作します。 –
なぜパラメータを持つマクロを使用しないのですか? –
@ IgnacioVazquez-Abrams:それをサポートするプリプロセッサは? 'gcc -E'では' UART_RXREG'が 'UUARTRXREG'に展開されます。私はそれが必要な行動だと信じています。 –