一、问题来源
先看看困惑来来源:
这让我很疑惑,难道c也支持“多态”的特性么?貌似没见过呀~
二、解决方案
google帮忙,明白了一二,特此记录:
原来这种“多态”是通过c语言的可变长参数实现的(python也具有这种特性)
有关可变长参数的介绍见文章末尾的参考列表,说的很详细。
截取关键的内容:
1.可变长参数的宏定义:
(学习宏函数的典例呀)
// stdarg.h
#define va_start _crt_va_start
#define va_arg _crt_va_arg
#define va_end _crt_va_end
// vadefs.h
typedef char * va_list;
#define _crt_va_start(ap,v) ( ap = (va_list)_ADDRESSOF(v) + _INTSIZEOF(v) )
#define _crt_va_arg(ap,t) ( *(t *)((ap += _INTSIZEOF(t)) - _INTSIZEOF(t)) )
#define _crt_va_end(ap