1
8
没有直接的限制,但编译器只需要允许各种类别的一些最小限制: 从 C11 standard :
|
2
4
不,没有限制。 例如,这是一个C代码段:
相应的装配代号为:
这个
正如注释中提到的,当代码嵌套太深时,编译器可能会崩溃。 我编写了一个简单的Python脚本来测试这一点。
|
3
1
没有。因为这些函数是一个接一个执行的,所以没有问题。
执行是线性的,之前的结果将用于下一个函数调用。 编辑:正如注释中所解释的,解析器和/或编译器在处理这种难看的代码时可能存在问题。 |
4
1
如果这不是一个纯粹的理论问题,答案可能是“尝试重写代码,这样就不需要这样做,因为对于大多数正常的用例来说,限制已经足够了”。如果这纯粹是理论上的,或者你真的需要担心这个限制,不能只是重写,请继续阅读。 C11标准第5.2.4节( latest draft, which is freely available and almost identical )指定实现的各种限制 必修的 支持。如果我读对了,你可以达到63级筑巢。 然而,实现是 允许 支持更多,以及 在实践中 他们可能会这样做。我很难找到适合GCC的文档(我找到的最接近的文档是预处理器中的表达式),但我希望它没有硬性限制,除了编译时的系统资源。 |
Jean-Francois T. · C(C99)中嵌套函数调用的限制 6 年前 |
Tarun Maganti · 字符串在C中是如何工作的? 6 年前 |
Mushy · 另一个空洞的话题;我只是想问一下,因为我很困惑 7 年前 |
Rahul · 编译器如何在编译时不知道内存大小的情况下分配内存? 7 年前 |
Sam · 将十六进制转换为循环中的一个字符串 7 年前 |
Dror K. · 用%p打印空指针是未定义的行为? 7 年前 |
lvella · 这个代码有效吗?[已关闭] 8 年前 |