嵌入式C传递字符串以起作用

cod*_*g82 1 c string winavr

我正在尝试将C中的字符数组逐字节地发送到微控制器的输出.我正在使用以下代码:

int main() {
...
   LogOutput("Hello World!");
}

void LogOutput(char *msg) {

    int i;
    for (i = 0; i < sizeof(msg); i++) {
        USART0_TX(msg[i]);              // transmit byte
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,这只发送前两个字母"他"---有人知道我做错了什么吗?

pb2*_*b2q 5

您正在使用sizeof运算符,并获取数据类型的大小,而不是字符串的长度.使用strlen得到一个字符串的长度(包括string.hstrlen等字符串处理函数).