{}, 程序一般用来表示作用范围或者执行范围.
主要有如下使用:
- 函数
- 选择结构:if语句,switch语句
- 循环结构: for型循环, while型循环, do-while型循环
- 数组
- 复杂数据类型:
结构体
共用体 - 面向对象
同上回答,除选择结构和循环结构在有的情况下可以省略外,其他情况都不能省略。
如果不确定,一般就不考虑省略。都给用上,是肯定不会有错的。万一省略不当,程序瘫痪了就不好了!
如if(if else), switch和 for, while循环体只有一条语句时可以省略{}.
函数定义中即使只有一条语句, {}也不能省略.
简单C语法分析, 非严谨理论,仅供参考.
自顶向下语法分析,其中有两个层次定义分别叫代码段(“Code block”)和语句(“Statement").
Statement就是合法的Token组合并以分号(;) 结尾的语句,
Code block则是以花括号({}) 包围的0条到多条Statement.
函数的定义,后面必须是Code block, 而if和while, 后面可以是Code block或一条Statement.
那为什么函数定义后面不能是Statement呢?因为Statement可以是空的,即一个分号“,”. 这种
情况会和“函数声明’的语法冲突.
想想这种情况:“void f() ;”
如果函数定义后面可以接Statement的话,那么上面这段代码该解析为函数声明还是一个空函数
呢?
相反的情况是extern的使用,之所以变量的声明需要extern而函数却可以不用,正是因为不加
extern时会和变量定义的语法冲突,而函数声明却不会.