gpt4 book ai didi

C. 没有 If 或函数定义的 {},它们如何工作?

转载 作者:行者123 更新时间:2023-12-02 09:15:43 26 4
gpt4 key购买 nike

在工作中偶然发现了这个 gem ,它对我来说看起来很奇怪,有 {} 不是代码中 if-case 或函数定义的一部分。我想删除额外的 {},但不知道它们实际上是否有任何区别。

这是我为了澄清我的问题而创建的一个小测试程序。我所说的是围绕“2 hello world”的额外 {} - 打印如下:

#include <stdio.h>

int main()
{
printf("1 hello world\n");
{
printf("2 hello world\n");
}

printf("3 hello world\n");

return 0;
}

这里的结果是:1 Hello World 2 Hello World 3 Hello World

所以它确实有效!

所以我想我的问题是:

在 C 中使用额外的 {} 有什么用?没想到编译能通过,但是效果很好。

最佳答案

What is the deal with using extra {} in C?

在C中称为 block 。C中的作用域有四种:函数、文件、 block 和函数原型(prototype)。

C11 6.2.1(P2) 标识符的范围:

For each different entity that an identifier designates, the identifier is visible (i.e., can be used) only within a region of program text called its scope. Different entities designated by the same identifier either have different scopes, or are in different name spaces. There are four kinds of scopes: function, file, block, and function prototype. (A function prototype is a declaration of a function that declares the types of its parameters.)

关于C. 没有 If 或函数定义的 {},它们如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47390705/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com