Ansi-C C99 Интерфейс со структурой

В качестве компилятора я использую Labwindows CVI от National Instruments.

Я должен был создать интерфейс для устройства и начать поиск структур для всех различных регистров.

// 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);

Затем я заполняю структуру в вызывающей функции, а затем передаю структуру в функцию, где я делаю все битовые сдвиги, добавляю адрес и т. Д. К сообщению и отправляю его через интерфейс связи.

Можно ли это улучшить, и я должен делать больше сокрытия информации и иметь функцию, заполняющую структуру? Я много читал, и это определенно могло бы принести некоторые улучшения.

1 ответ

То, что я пытаюсь сделать, - это то, что у меня есть устройство, с которым я общаюсь по протоколу TCP, у него есть документ, объясняющий, что делает каждый регистр.

...

Затем я заполняю структуру в вызывающей функции, а затем передаю структуру в функцию, где я делаю все битовые сдвиги, добавляю адрес и т. Д. К сообщению и отправляю его через интерфейс связи.

Можно ли это улучшить, и я должен делать больше сокрытия информации и иметь функцию, заполняющую структуру?

Из Википедии:

В компьютерных науках сокрытие информации - это принцип разделения проектных решений в компьютерной программе, которые с наибольшей вероятностью могут измениться, тем самым защищая другие части программы от обширной модификации в случае изменения проектного решения. Защита включает обеспечение стабильного интерфейса, который защищает оставшуюся часть программы от реализации (детали, которые могут измениться).

То, что делает каждый регистр в устройстве, вряд ли изменится, и, если это в конечном итоге должно измениться, другие части программы, вероятно, все равно будут нуждаться в модификации, поэтому нет смысла делать "скрытие большей информации".

Другие вопросы по тегам