什么时候用c / c ++命令分号?

时间:2011-06-15 03:31:21

标签: c++ c syntax

if(...) {
  ...
}

在上面的例子中似乎;是可选的,在c / c ++中需要}之后是分号吗?

3 个答案:

答案 0 :(得分:14)

int a[2] = {1,2}, j = 5;

当使用{}完成数组或结构的初始化时,所有后续变量都在,之后声明。

修改:当您更改问题时;在;class初始化语法声明后,enum是必需的。

class A {};  // same for `struct
enum E {};   // enum class (c++0x)
int a[] = {1,2};  // array or object initialization

答案 1 :(得分:6)

分号本身就是一个空语句,您可以在语句合法的任何地方添加额外的分号。因此,在if之后的大括号后面加上分号是合法的,尽管它根本不与if相关。在C ++中的类声明之后,我可以想到在分支后面的分号需要的唯一地方。

答案 2 :(得分:3)

如果这是声明的结尾,那么在大括号之后的分号是manadatory。如果它是语句的结尾,则不需要分号,如果使用了分号,则会产生一个额外的空语句,如果这是中间的话,这可能是非法的一个if - elsedo - while(或C {+ try - catch