XDR-枚举的试用
2014年4月7日17:50:14
定义一个.x文件,lww.x。文件内容如下:
enum colors{
RED = 2,
YELLOW = 3,
BLUE = 5,
GREEN = 0x10
};
struct lww_int
{
int m_nAge;
};编写C程序:
#include <stdio.h>
#include <rpc/rpc.h>
#include "lww.h"
//int main()
//{
// printf("begin\n");
//
// FILE * pFile = fopen("lww.txt","wb");
// XDR XDR;
// xdrstdio_create(&XDR,pFile,XDR_ENCODE);
//
// colors aRED = RED;
// colors aYELLOW = YELLOW;
// colors aBLUE = BLUE;
// colors aGREEN = GREEN;
// lww_int aLwwInt;
// aLwwInt.m_nAge = 28;
//
// xdr_colors(&XDR,&aRED);
// xdr_colors(&XDR,&aYELLOW);
// xdr_colors(&XDR,&aBLUE);
// xdr_colors(&XDR,&aGREEN);
// xdr_lww_int(&XDR,&aLwwInt);
//
// xdr_destroy(&XDR);
// fclose(pFile);
//
// printf("end\n");
//
// return 0;
//}
void printColor(colors aColor)
{
switch(aColor)
{
case RED:
printf("红色\n");
break;
case YELLOW:
printf("黄色\n");
break;
case BLUE:
printf("蓝色\n");
break;
case GREEN:
printf("绿色\n");
break;
default:
printf("错误色\n");
break;
}
return;
}
int main()
{
printf("begin\n");
FILE * pFile = fopen("lww.txt","rb");
XDR XDR;
xdrstdio_create(&XDR,pFile,XDR_DECODE);
colors aColor;
lww_int aLwwInt;
xdr_colors(&XDR,&aColor);
printColor(aColor);
xdr_colors(&XDR,&aColor);
printColor(aColor);
xdr_colors(&XDR,&aColor);
printColor(aColor);
xdr_colors(&XDR,&aColor);
printColor(aColor);
xdr_lww_int(&XDR,&aLwwInt);
printf("%d\n",aLwwInt.m_nAge);
xdr_destroy(&XDR);
fclose(pFile);
printf("end\n");
return 0;
}
本文介绍了一个使用XDR进行枚举类型处理的例子。通过定义颜色枚举和结构体,实现了枚举值和结构体成员的序列化与反序列化,并通过C语言程序进行了验证。
1614

被折叠的 条评论
为什么被折叠?



