可变参数提供了一个参数可供多种选择
内存对齐可以最大限度保证速度,当然是在牺牲内存的前提下
1. szieof(char*) =4 sizeof(int)=4 实际上就是对齐了 _INTSIZEOF(n)
void abc(char *CanShu,...)
{
char * ch;
ch=CanShu;
va_list vt; //typedef char * va_list;
va_start((vt,CanShu); // #define va_start(ap,v) ( ap = (va_list)&v + _INTSIZEOF(v) )
while(ch!=NULL)
{
printf("%s\n",ch);
str=va_arg(vt,char*); //#define va_arg(ap,t) ( *(t *)((ap += _INTSIZEOF(t)) - _INTSIZEOF(t)) )
//#define va_end(ap) ( ap = (va_list)0 )
}
va_end(vt);
}
void main()
{ abc("abcde","defg","hjk","fefe","we",null);}
2.内存对齐的特点
1.当前字段的整数倍为起始地址 2.结构体(A)内部包含结构体(B),则B在A的起始地址为B里面最大字段的倍数 3.补齐。