兄弟我要在单片机上实现结构化输出,但总达不到效果。对比了VC上和KEIL51上的stdarg上的代码,有点让我迷惑
VC:
#define _INTSIZEOF(n) ( (sizeof(n) + sizeof(int) - 1) & ~(sizeof(int) - 1) )
#define va_start(ap,v) ( ap = (va_list)&v + _INTSIZEOF(v) )
#define va_arg(ap,t) ( *(t *)((ap += _INTSIZEOF(t)) - _INTSIZEOF(t)) )
#define va_end(ap) ( ap = (va_list)0 )
#endif
KEIL51:
#define va_start(ap,v) ap = (va_list)&v + sizeof(v)
#define va_arg(ap,t) (((t *)ap)++[0])
#define va_end(ap)
请问各位大侠,这两段代码的具体功用是什么,谢谢!
具体情况是:我执行了一次va_arg(ap,t)时,ap的值总是0xff,这让我有些费解