跳至内容
- C/C++/ObjC/Java/C#/Pascal/PHP 等语言用分号分隔。
- Basic/Python用换行分隔。
- SQL语言既可以用换行也可以用分号,在不同语句在同一行时用分号,也支持更改语句分隔符。
- Swift/JavaScript/Go/仓颉/Kotlin 结束符既可用换行,也可用分号。
同一行写多个语句,用分号分隔。
- VB采用换行或者冒号:作为结束符,下划线_作为续行符,VBScript和VB一样。
- VB 2010之后,行续行符逐渐变得可选,即编译器更加智能,并不是直接以换行作为语句的结束,可以更懂程序员的代码。
- 同一行有多个语句,用冒号作为语句分隔符。用下划线续行代表上下行属于同一个语句。
- Rust语句结束符是分号,如果是块语句最后一个语句可以忽略分号。
误用分号
- C语言分号作为语句的结束,如果误用在if、for和while条件语句之后,可能造成提前结束。
例如
if (x == 1);
printf("is 1");
这里if判断这行就已经结束了。幸运的是,GCC提供-Wmisleading-indentation选项检测这样的问题。
if (a < 0)
return
printf("fail");
这里return语句和后面的printf是连在一起作为一个语句。可惜的是,GCC/MSVC打开-Wall也不能提示可能的隐患。
- C/C++ 结构体定义的最后需要有分号,习惯写C#/Java类定义可能忘记这个设定,造成奇怪的编译结果。比如,忘记了分号,结构体定义被当成了一个类型作为返回值。