2016-03-11 45 views
0

在C程序中,我们通常会声明较少数量的变量。是否可以声明'n'个变量?对于ex: int a,int b,int c ....... 或者编译器是否给我一个错误?在C程序中可以做多少个变量声明?

变量的声明是否有最大限制?

+0

你是什么意思的“少数”?你只是问是否有最大限度的,还是其他的? – Gilles

+0

如果您认为存在问题,那么您需要了解阵列。 –

+0

是否有最大限度 –

回答

1

变量数目没有明确限制。此外,这与特定的编译器相关,但有迹象表明,必须支持最小数量的范围,局部变量和标识符长度,才能将其称为标准符合性。

限制本身并不与运行时可用的内存连接。

源代码的任何限制(约束)必须在编译器文档中明确给出(这是从C标准指示,段落限制中获取的语句)。

+0

*声明*变量(即编译器接受的内容)的能力以及实际在内存中分配它们的能力都可以是限制。例如,GCC支持几GB或更多的计算机,实际上符号表的最大尺寸(不知道是否有)可能是一个限制,直到AVR Tiny,它有多达512 **字节* *绝对太多的变量会阻止程序运行。 – tofro

+0

好的,我认为这是从“规范中的文档编译器”中介绍的,或者我错过了什么?在运行时分配它们的能力不是编译器的问题,但是如果编译器不能分配它们,那是的。 – Evil

4

编译器没有义务有上限。但是,如果它有限制,它只能这么小。

C确定最小值最大限值。

见5.2.4.1 C11翻译限制

实例:

4095在一个转换单元外部标识符
511识别符与块范围在一个块中声明的一个函数定义
127参数
1023成员在一个单一的结构或联盟