Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么自动关键字存在于C中?_C_Keyword - Fatal编程技术网

为什么自动关键字存在于C中?

为什么自动关键字存在于C中?,c,keyword,C,Keyword,从程序员的角度来看,auto关键字的意义是什么?它是自动变量的默认存储类,自动变量在堆栈上分配,并在其作用域结束时被删除。那么,当这是默认行为时,保留这个额外的“不太重要”关键字有什么意义呢 我最近开始阅读“C编程专家-深层C秘密”,其中Peter Van Der Linden提到“auto关键字显然是无用的”,但在某种程度上对编译器编写人员来说是有意义的。那是什么?有人能证明这个关键字的存在吗?因为它没用,它的含义在C++11中已经改变了。关于旧存储类的更多信息[此处][1]提供了很好的解释。

从程序员的角度来看,auto关键字的意义是什么?它是自动变量的默认存储类,自动变量在堆栈上分配,并在其作用域结束时被删除。那么,当这是默认行为时,保留这个额外的“不太重要”关键字有什么意义呢


我最近开始阅读“C编程专家-深层C秘密”,其中Peter Van Der Linden提到“auto关键字显然是无用的”,但在某种程度上对编译器编写人员来说是有意义的。那是什么?有人能证明这个关键字的存在吗?

因为它没用,它的含义在C++11中已经改变了。关于旧存储类的更多信息[此处][1]提供了很好的解释。[1] :@unxnut如果你想在上发布一个指向另一个QA的链接以回答问题,请标记为重复。在C11中是否也有相同的含义?在有人将其标记为复制之前,这个问题的重点是要知道它在何种程度上对编译器设计者有用(如本书所述),但对程序员来说却是多余的?正如我所说,它的含义在C11中发生了变化,在上面的链接中讨论了新旧含义。答案是:“这个关键字实际上是C的前一个B的遗留,B中没有基类型:一切都是int,指向int的指针,int的数组。(*)声明可以是auto或extrn[sic]。C继承了“一切都是int”作为默认规则,因此您可以使用”