ansi C是否限制程序中的外部变量数量?

Emi*_*har 1 c ansi

外部变量我指的是用extern修饰符声明的变量(并在程序的其他地方定义).

我被告知这个限制,无法在网上找到确认或反驳.这是真的?如果是这样,这是限制吗?它通常是由编译器强制执行的吗?

San*_*ker 8

C99标准规定了几个转换限制(5.2.4.1).其中之一是:

一个翻译单元中有4095个外部标识符

C89标准规定了此限制(2.2.4.1):

一个翻译单元中有511个外部标识符

请注意,这些是符合实现的最小限制,而不是绝对限制.