以下是不入门级别的学生的思考:
一开始需要用到可变参数的函数是在课本例题,上面只说用到头文件stdarg.h,里面有宏va_start、va_arg、va_end,由于之前一点没注意这方面的知识,所以看得一头雾水。 首先是什么是宏? 在我看来,就是#define 标识符 字符串 定义的东西。 使用的原理是宏替换:字符串换掉程序里面的标识符。如#define N 20 是最简单的,把程序里面的N换成20,标识符有时候会有参数,但是记住万变不离其宗!!一样的原理。 其次,typedef 类型名 字符串 是类似于定义结构体,,不过在这里是 给类型名换个名字。。
分析头文件st
darg.h的部分代码:可以看到有下面的:
typedef char * va_list;
#endif
#define _VA_LIST_DEFINED
#endif
#ifdef