摘要:
ANSI C中库函数printf的正确形式如下: int printf(char *fmt, ...);其中,省略号表示参数表的数量和类型是可变的。省略号只能出现在参数表的尾部。如何实现这样一个具有可变参数表的函数?在《The C programme Language》中实现了这样一个示例函数: void minprintf(char *fmt, ...);先看看它的实现方式,然后研究下它的实...
阅读全文
posted @ 2010-09-01 11:08
李尤
阅读(692)
推荐(0)
编辑
摘要:
C语言本身因为声明的语法问题而经常遭人诟病,在情况比较复杂时,容易让人混淆,因为C语言的声明不能从左至右阅读,而且使用了太多的圆括号来保证正确的结合顺序。 下面将实现两个程序,一个程序用于将正确的C语言声明转换为文字描述,另一个程序完成相反的转换。文字描述是从左至右阅读的。通过程序的实现原理可以了解编译器在解析复杂声明时到底做了什么。 第一个程序dcl,将C语言的声明转换为文字描述,如: c...
阅读全文
posted @ 2010-09-01 11:04
李尤
阅读(424)
推荐(0)
编辑
摘要:
有这么一个问题:如何写一个测试程序,试验出你的编译器是否支持注释嵌套? 在C编译器进行词法分析的时候是采用的贪心算法,对此Kernighan和Ritchie描述如下:" 如果编译器的输入流截止至某个字符之前都已经被分解为一个个符号,那么下一个符号将包括从该字符之后可能组成一个符号的最长字符串。" 如下例: /*/**/"*/" ...
阅读全文
posted @ 2010-09-01 10:39
李尤
阅读(270)
推荐(0)
编辑