C(C99)中嵌套函数调用的限制

Jea*_* T. 0 c c99

根据C99,嵌套函数调用是否有限制?

例:

result = fn1( fn2( fn3( ... fnN(parN1, parN2) ... ), par2), par1);
Run Code Online (Sandbox Code Playgroud)

注意:这段代码绝对不是一个好的做法,因为很难管理; 但是,此代码是从模型自动生成的,因此可管理性问题不适用.

Ger*_*rdh 7

没有直接的限制,但编译器只需要允许各种类别的一些最小限制:

C11标准:

5.2.4.1翻译限制1实施应能够翻译和执行至少一个包含以下每个限制的至少一个实例的程序:18)

...

  • 63个完整表达式中带括号的表达式的嵌套级别

...

  • 逻辑源行中的4095个字符

18)实施应尽可能避免强加固定的翻译限制