1)这是讨论串口发送,一个通用的串口发送程序不应该有所限制,很多时候,0 也是通讯协议的一部分,即使发送的是字符串,例如同# $ * 0x0A, 0x0D 一样作为协议结束标志。
2)判断"\0"作为字符串的结尾,便利但危险。我前面已经说的很清楚了。如果是概念清楚的高手,这么做无可厚非,而菜鸟这么做则不妥。最简strcpy的讨论,现在看来,实际应用中的隐患极大,一般程序员不建议使用。很多著名的程序漏洞多是由判断"\0"引起,如使用极广的 ftp Server: ServerU. 原贴主enjoy21cn 的程序是另一个极好的例子。
3)sizeof 不用多说了。我说过,要强迫程序员关注数组长度,以避免不必要的溢出。要学会使用 sizeof, 即使你定义的是 char A[3]。在冷漠以前要求的程序中,我已经给冷漠指出过。冷漠原贴为 i < 15:
for (i = 0; i < sizeof(table); i++) //记住:永远不要直接使用数组长度!!!!! { P1 = ~table;
|