在外部

时间:2015-11-05 02:53:18

标签: c assembly extern c-strings msp430

对msp430进行编程,我有一个使用.string指令声明的字符串:

message:    .string "Hello World"

我想在模块之外引用它,所以我.def' d:

            .def    message
message:    .string "Hello World"

在C中,我想引用字符串,但得到错误的字符:

extern char* message;

int main(void) {
    char c = *message; // First character of message is listed as 'z'
}

有关可能导致此问题的任何想法?它编译得很好,并且在我引用的程序集中有几个函数没有问题。

1 个答案:

答案 0 :(得分:3)

使用extern char message[];。当您将其声明为指针时,您会说message是一个只占用2个字节内存并存储地址的值。将它声明为char的数组时,你说的是一个1字节字符的序列,这就是字符串。