首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

帮忙解释一下一段代码,该如何解决

2012-05-04 
帮忙解释一下一段代码C/C++ codetypedef char *va_list#define _ADDRESSOF(v)( &reinterpret_castconst

帮忙解释一下一段代码

C/C++ code
typedef char *  va_list;#define _ADDRESSOF(v)   ( &reinterpret_cast<const char &>(v) )#define _INTSIZEOF(n)   ( (sizeof(n) + sizeof(int) - 1) & ~(sizeof(int) - 1) )#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)      ( ap = (va_list)0 )#define va_start _crt_va_start#define va_arg _crt_va_arg#define va_end _crt_va_endva_list args;                 va_start(args, msg); _vsnprintf(tempBuff,WEBRTC_TRACE_MAX_MESSAGE_SIZE-1,msg,args);va_end(args);


[解决办法]
可变参数宏. c语言奇技淫巧之一.
[解决办法]
续一个“奇技淫巧”:
C/C++ code
#include <stdio.h>#define HEAD f=fopen("tmp.txt","w+");fprintf(f,#define TAIL(A,Y,X) ); fflush(f); rewind(f); for (y=0;y<Y;y++) for (x=0;x<X;x++) {while (1) {if (1==fscanf(f,"%d",&A[y][x])) break; else fgetc(f);}} fclose(f); remove("tmp.txt");#define PRINT(A,Y,X) for (y=0;y<Y;y++) { for (x=0;x<X;x++) {printf("%d ",A[y][x]);} printf("\n");}unsigned char a[2][4];int x,y;FILE *f;void main() {    HEAD        "a = {     "        "{0,1,2,3},"        "{0,2,5,8},"        "}         "    TAIL(a,2,4)    PRINT(a,2,4)}//0 1 2 3//0 2 5 8// 

热点排行