【发布时间】:2015-09-16 14:13:46
【问题描述】:
我正在为微控制器编写 uart 代码。我的代码在传递字符串(“...”)时工作正常,但是当我尝试传递 char('.')时出现问题。是的,我已经将“s”声明为字符串指针,但是有可能传递 char 值。是否有可能在 send_data 中同时传递字符串和字符值?
#include <stdio.h>
void send_data( char *s)
{
while(*s!='\0')
{
send_dt1(*s);
s++;
}
}
void send_dt1( char in_c)
{
printf("%c",in_c);
}
int main(void)
{
send_data("sample_data"); //fine
send_data('Q'); //warning, no data displaying
return 0; /* terminate the program */
}
谢谢..
【问题讨论】:
-
嗨@CoolGuy 感谢您的回复。我试过了,我认为“Q”只是一个字符串,我需要通过“Q”。我想我的问题会有点伤害......
-
您的函数需要一个指向以空字符结尾的字符串的第一个字符的指针。
'Q'是一个字符文字。它不是指针,也不是以 null 结尾的字符串。 -
@cad - 在微控制器上,没有“segfaults”。但是,它可能取决于架构读取,直到它运行到引发中断/故障的内存区域,(充其量)可以通过重新启动 MCU 来处理。即使在运行完整操作系统的系统上,也不能保证段错误。事实上,我可能会说它更多你可能会遇到可读内存页面/区域结束的零。