6

私は自分のコードで次のように定義しています

#define PRODUCTNAME     "SomeName"

関数で送信したいcom_reply(unsigned char* msg, uint16_t lenght)

ここで、引数の符号が異なるという警告が表示されます。私は問題が何であるか、またなぜ代わりに をcom_reply使用するのかを知っています。知りたいだけです:unsigned char*char*

unsigned char*文字列を として定義して、プログラム全体で警告を表示することなく使用できるようにするにはどうすればよいですか。

編集:

厳密に言えば、ここには複数の定義があります。主な理由はBANNER、次のように、他のいくつかの定義で構成される定義があるためです。

#define PRODUCTNAME     "SomeName"
#define PRODUCTDATE     "2013-03-30"
#define BANNER          PRODUCTNAME " (" PRODUCTDATE ")"

ここで定義を使用する代わりに、const 変数を作成し、プログラムの開始時にそれらを連結する必要がありますか?

4

1 に答える 1

12

これはうまくいくはずです:

#define PRODUCTNAME     ((const unsigned char *)"SomeName")
于 2013-03-30T15:38:54.087 に答える