我有一个视图结构的实例:
typedef struct{
const char str[32]; // текстовая надпись
const char numberButton[4]; // номер кнопки
const uint32_t size; // размер кнопки
const uint32_t y; // положение y координата
const uint32_t x; // положение x координата
const uint32_t TextcolF; // цвет надписи
const uint32_t TextcolB; // цвет фона
const uint32_t NumColF; // цвет цифр
const uint32_t NumColB; // цвет цифр
} const _TypeButonPressedOn;
我做了一个结构定义:
const _TypeButonPressedOn ReadButton;
const _TypeButonPressedOn DellButton; // и так далее
其中 ReadButton 是按钮实例。
我使用表单的功能在屏幕上显示按钮:
void ButtonReadOn(void)
{
moveM(ReadButton.y,ReadButton.x);
colorM_F(ReadButton.TextcolF);
colorM_B(ReadButton.TextcolB);
addstrMenu(ReadButton.str);
writeWindow(ReadButton.y, ReadButton.x, ReadButton.TextcolF, ReadButton.TextcolB, (char*)ReadButton.str, ReadButton.size);
}
并且可以有几十个这样的功能。
如何替换 'ButtonReadOn' 函数中的 'ReadButton' 以使事情变得更容易?我创建了另一个按钮,为了不在每一行中将“ReadButton”重新制作为“DellButton”,编写“DellButton”,编译器本身会将“ReadButton”替换为“DellButton”。
在 C 中,模板是使用宏编写的。