为什么C允许在块周围留出大括号?

前端之家收集整理的这篇文章主要介绍了为什么C允许在块周围留出大括号?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我们大多数人可能遇到了在“if”中添加另一个语句的错误,并注意到它不管分支的条件如何打印,只是迟早会发现在“if”条件下的大括号失踪.

例:

if (condition) {
    statement;
}

相比:

if (condition)
    statement;

请注意,我不想讨论什么编码标准更好,因为我们都有我们的意见,它非常依赖于上下文.相反,我会对编程语言的优点感兴趣,从这些优点,为什么决定不被严格执行.它是否使一个更简单的语法?编译器实现?

留下它的优点是什么,而不是严格执行它?标准说了什么?

解决方法

C标准说一个if(表达式)必须跟着一个语句.它不要求声明是复合语句.

在“C的精神”(见C理由文件)中,其中一个是:

Trust the programmer.

另一方面,MISRA-C具有if语句和循环语句必须是复合语句的必要规则.

一些编码样式允许单个语句,如果只有当该语句放在与if相同的行时.例如:

if (condition) statement;

请注意,C和C不仅是if中的{}是可选的语言.例如在Java中,它也是可选的,但在Perl中是必需的.

猜你在找的C&C++相关文章