C语言中规定以字符‘\0'作为字符串結束标志’\0'是一个ASCII码为0的字符,从ASCII码表中可以看到ASCII码为0的字符是“空操作字符”
它不引起任何控制动作,也不是一个可显示的字符
这昰本人在用单片机开发板有什么用做串口通讯时遇到的小问题因为那个电子设备比较特殊,发送的数据也是比较的特殊所以我便遇到叻这个问题。一开始按照预定的指令和电子设备通讯总是不行,后来通过串口调试器才发现发送的数据只能发送一半。于是我返回去看代码这才发现了症结所在。
以下便是我的程序出错的原因:
出错的程序代码段:
(刚开始的时候没发现很郁闷,通过串口调试器才找到原因)
程序执行到0x00==p[2]时,即相当于‘\0’==p[2];(即遇到NUL退出)到这一步程序的判断结束发送函数也结束。
在C语言中'\0'其实就是ASCII码表上值为0的它是不显示的
我想通过这个小问题来说明在写程序是尤其要和硬件打交道的时候一定要注意‘\0’。
写的不好请见谅!欢迎大家批评指正