Printf忽略空值?

ove*_*ore 2 c embedded null printf microchip

我正在为嵌入式目标Microchip PIC24编写C代码,由于某种原因,运行时libc无法通过串行端口正确发送\ 0值.

printf("\xEE\xEE\0test");
Run Code Online (Sandbox Code Playgroud)

例如,发送EE EE"test",忽略空字节.

有谁知道为什么会这样?

编辑:嗯,没关系XD.我用put来发送字符串.. doh'

Car*_*rum 5

空字符是C中的字符串终止符, printf因为\0它是字符串的结尾.使用putchar()printf()使用格式字符串可能有效:

printf("%c", '\0');
Run Code Online (Sandbox Code Playgroud)

如果你0xEE 0xEE test按照你的建议上线,你确定test它不是来自不同的printf电话吗?