摘要: 在可变实参头文件中的宏和定义,为创建一个可变长实参列表的函数提供了必须的功能va_list 该类型适合于保存宏va_start,va_arg和va_end所需的信息。为了访问到一个可变长实参列表中的实参,必须声明一个类型为va_list的对象va_start 在一个可变长实参列表中的实参被访问之前,先要调用这个宏。这个宏的功能室:初始化用va_list声明的对象,以便让宏va_arg和va_end来使用va_arg 这个宏展开成一个表示可变长实参列表中下一个实参的值和类型的表达式。每次对va_arg的调用都要修改用va_list声明的对象,以使这个对象指向列表中的下一个实参va_end 当一个 阅读全文
posted @ 2014-03-11 16:39 ShowJoy 阅读(280) 评论(0) 推荐(0)
摘要: 1.在程序开发过程中,如果不想某些代码不参加编译,我们可以用/*和*/封起来,但是如果代码中已经有符号/*和*/,那就不能起作用了,这是我们可以采用如下结构处理:#if 0 代码。。。#endif如果想重新让这部分代码参加编译,只需要把0改为1即可。2.程序的调试。我们可以通过条件预处理命令将printf等调试的语句封装起来,让其只能在程序调试过程中起作用:#ifdef DEBUGprintf("......");#endif这里的DEBUG先前预定义(#define DEBUG)如果定义了就参加编译,如果没有就会被编译器忽略。在大型软件开发中,可能需要定义诺干个不同的符号 阅读全文
posted @ 2014-03-11 15:01 ShowJoy 阅读(637) 评论(0) 推荐(0)
摘要: 1 #include "stdio.h" 2 #include "stdlib.h" 3 #include "ctype.h" 4 #include "math.h" 5 #include "string.h" 6 7 struct stackNode{ 8 char data; 9 int value; 10 struct stackNode *nextPtr; 11 }; 12 13 typedef struct stackNode StackNode; 14 typedef StackNo 阅读全文
posted @ 2014-03-11 08:56 ShowJoy 阅读(425) 评论(0) 推荐(0)