我首先自己建了一个头文件,在头文件里我定义了一个集合:
union{
WORD Wval;
struct{
unsigned d0:1;
unsigned d1:1;
unsigned d2:1;
unsigned d3:1;
unsigned d4:1;
unsigned d5:1;
unsigned d6:1;
unsigned d7:1;
unsigned d8:1;
unsigned d9:1;
unsigned d10:1;
unsigned d11:1;
unsigned d12:1;
unsigned d13:1;
unsigned d14:1;
unsigned d15:1;
}WBits;
struct{
BYTE HValue;//前一个字节
BYTE LValue;//后一个字节
}WBytes;
}myword;
这是头文件里的内容,
我再定义二个用户标准函数,一个是用来返回两个单字节的,一个是用来返回其中某一个位的:
#include "我的头文件"
void tobyte(char str[30],char Hvalue[30],char Lvalue[30])
{
myword.Wval=GetTagWord(str);
SetTagWord(Hvalue,myword.WBytes.HValue);
SetTagWord(Hvalue,myword.WBytes.LValue);
}
这个程序我试过,可以返回的.
BOOL tobit(char str[30],int num)
{
myword.Wval=GetTagWord(str);
return myword.WBits.dX //这里我就不知道怎么写了,X应该是我从参数年传过来的num
}
我就这儿不会了,这个集合也可以用来拼成16双字节来用,本来我想试验成功后发上来让班主给我加个精的,谁知道在这儿挡住了,大哥们帮帮忙呀!看看有什么好的办法?
不想用switch case等,我总觉得有更好的方法!在此谢谢!