1.问题描述:
在编译vehicle增加上下电任务时候,总是执行解析上下电msg错误,当时认为是不是字段写的有错误,当时检查好几遍,发现字段没有问题,那么为什么会执行解析错误后的代码呢,当时好郁闷,又重新检查错误,发现在
在if()后面有个“;”,当时就发现肯定是这个的问题,后来在if()后面加else()就能检查加“;”的错误,如果不加else{}分号还在if();编译器就不会报错,但是加上else{}后 编译器就会报错,后来搞清楚,“;”就是一个空语句,不管if()里面是真是假后面的大括号{}都会执行,所以导致立刻返回-1,程序解析错误。
分析:if()后加“;”,不管()里的是否为真,都会执行后面{}里的内容太,并且在没有后续else{}编译器不会报错。