我如何#define一个unsigned char *字符串?

时间:2013-03-30 15:20:59

标签: c c-preprocessor unsigned-char signedness

我在我的代码中有以下定义

#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变量并在程序启动时连接它们而不是在这里使用定义吗?

1 个答案:

答案 0 :(得分:12)

这应该有效:

#define PRODUCTNAME     ((const unsigned char *)"SomeName")