您所在的位置: 首页 > 读书频道 > 设计开发 > 其它开发 >

1.7 编译限制

http://book.51cto.com  2008-03-31 22:33  徐波  人民邮电出版社  我要评论(0)
  • 摘要:《C专家编程》展示了最优秀的C程序员所使用的编码技巧,并专门开辟了一章对C++的基础知识进行了介绍。本文介绍了ANSI C中的编译限制。
  • 标签:C  编程

1.7  编译限制

事实上,ANSI C标准对一个能够成功编译的程序的最小长度作了限制,这是在标准第5.2.4.1节规定的。绝大多数语言都有类似的规定,如一个数据名称(dataname)最多可以有多少个字符,一个多维数组的维数最多能够达到多少。但对语言的某种特性的最小值作出规定,如果不是独此一家,至少也是非比寻常的。标准委员会的成员们评论说这是为了指导编译器选择程序最小能够接受的长度。

每一个ANSI C编译器必须能够支持:

• 在函数定义中形参数量的上限至少可以达到31个。

• 在函数调用时实参数量的上限至少可以达到31个。

• 在一条源代码行里至少可以有509个字符。

• 在表达式中至少可以支持32层嵌套的括号。

• long int的最大值不得小于2 147 483 647(就是说,long型整数不得低于32位)等等。进而,一个遵循标准的编译器必须能够编译并执行一个满足上面这些限制的程序。令人惊异的是,上面这些“必须”的限制实际上并不是约束条件,所以当编译器发现违反上述规定的情况时并不一定产生错误信息。

编译器限制通常是一个“编译器质量”的话题。在ANSI C标准中包含它们就是默认如果所有的编译器都设置一些容量上的限制,就会更加有利于代码的移植。当然,一个真正优秀的编译器不应该有预设的限制,而应该只受一些外部因素的限制,如可用的内存或硬盘空间等。这可以通过使用链表或必要时动态扩展表的大小(这个技巧将在第10章解释)来实现。


回书目   上一节   下一节
金山WPS 20年 与微软Office尚未结束的战争
1000分拿下MCSE认证
微软 Windows 7 技术前瞻
2008年第6届OpenOffice.org世界开源大会
最优性价比组建无线网络
 
 验证码: (点击刷新验证码)   匿名发表
  • 网络工程师考试案例动手实验营

  • 作者:郭春柱
  • 本书依据2009年版《网络工程师考试大纲》的考核要求,深入研究了历年网络工程师考试试题的命题风格和试题结构,对考查的知识点..
Copyright©2005-2008 51CTO.COM 版权所有