首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带结构的Ansi-C C99接口

带结构的Ansi-C C99接口
EN

Stack Overflow用户
提问于 2015-11-29 04:09:23
回答 1查看 294关注 0票数 0

我主要使用美国国家仪器公司的Labwindows CVI作为我的编译器。

我必须为设备创建一个接口,并开始为所有不同的寄存器查找结构。

代码语言:javascript
复制
// Interface.h

typedef enum Color{
    White,
    Black,
    Blue
};

typedef struct Register1{
    int Bit1:1;
    int Bit2:2;
    Color col;
} Register1;

// Interface.c

BuildSendMessage(Register1 temp)
{
    unsigned int iTemp;

    iTemp = temp.Bit1 << 7 + temp.Bit2 << 5 + temp.col; 
}

// sample.c

Register1 reg1;

reg1.Bit1 = 0;
reg1.Bit2 = 1;
reg1.col = White;

// Pass to function where message is built up

BuildSendMessage(reg1);

然后,我在调用函数中填充该结构,然后将该结构传递到一个函数中,在该函数中,我执行所有的位移位,将地址等附加到消息上,并通过comm接口将其发送出去。

这可以改进吗?我应该做更多的信息隐藏,并让一个函数填充结构吗?我已经做了大量的阅读,这肯定需要一些改进。

EN

回答 1

Stack Overflow用户

发布于 2016-03-03 20:50:03

我想要做的是,我有一个设备,它有一个文档,解释每个寄存器的作用。,

,I,I,to,tcp,它有一个文档,解释了每个寄存器的作用。

然后,我填充调用函数中的结构,然后将结构传递到一个函数中,在该函数中,我执行所有的位移位,将地址等附加到消息上,并通过comm接口将其发送出去。(

)

这可以改进吗?我应该做更多的信息隐藏,并让一个函数填充结构吗?

来自Wikipedia

保护包括提供一个稳定的接口,该接口保护程序的其余部分不受实现的影响(最有可能发生变化的细节)。

设备中的每个寄存器所做的事情不太可能改变,如果它最终应该改变,程序的其他部分可能无论如何都需要修改,所以做“更多的信息隐藏”是没有意义的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33975922

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档