块和复合语句是同一个概念吗?
Are a block and a compound statement the same concept?
在 C11 标准中
6.8 Statements and blocks
A block allows a set of declarations and statements to be grouped
into one syntactic unit.
6.8.2 Compound statement Syntax
compound-statement:
{ block-item-listopt }
block-item-list:
block-item
block-item-list block-item
block-item:
declaration
statement
Semantics
A compound statement is a block.
6.9.1 Function definitions
Syntax
function-definition:
declaration-specifiers declarator declaration-listopt compound-statement
所以复合语句是一个块。
块是复合语句吗?
在函数定义中,“compound-statement”部分与块的含义相同吗?
A compound-statement 是一个块,但它不是唯一的块。迭代语句也是一个块,例如 (6.8.5/5),即使循环体由一个简单的语句组成。
与迭代语句不同,函数定义的语法需要大括号。 compound-statement 是用大括号括起来的句法范畴。
块是语义范畴,用于指定名称的范围和自动对象的生命周期。
在 C11 标准中
6.8 Statements and blocks
A block allows a set of declarations and statements to be grouped into one syntactic unit.
6.8.2 Compound statement Syntax
compound-statement: { block-item-listopt } block-item-list: block-item block-item-list block-item block-item: declaration statement Semantics
A compound statement is a block.
6.9.1 Function definitions
Syntax
function-definition: declaration-specifiers declarator declaration-listopt compound-statement
所以复合语句是一个块。
块是复合语句吗?
在函数定义中,“compound-statement”部分与块的含义相同吗?
A compound-statement 是一个块,但它不是唯一的块。迭代语句也是一个块,例如 (6.8.5/5),即使循环体由一个简单的语句组成。
与迭代语句不同,函数定义的语法需要大括号。 compound-statement 是用大括号括起来的句法范畴。
块是语义范畴,用于指定名称的范围和自动对象的生命周期。