RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 1288285
Accepted
zhilenkov
zhilenkov
Asked:2022-05-31 21:00:15 +0000 UTC2022-05-31 21:00:15 +0000 UTC 2022-05-31 21:00:15 +0000 UTC

如何向函数添加不同的结构实例?

  • 772

我有一个视图结构的实例:

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
  • 1 1 个回答
  • 10 Views

1 个回答

  • Voted
  1. Best Answer
    AlexGlebe
    2022-06-02T12:52:00Z2022-06-02T12:52:00Z

    在 C 中,模板是使用宏编写的。

    # define TEMPLATE_BUTTONS_FUNC( FUNC_NAME , VAR_NAME ) \
      void FUNC_NAME ( void ) { \
        moveM(VAR_NAME.y,VAR_NAME.x); \
        colorM_F(VAR_NAME.TextcolF); \
        colorM_B(VAR_NAME.TextcolB); \
        addstrMenu(VAR_NAME.str); \
        writeWindow(VAR_NAME.y, VAR_NAME.x, VAR_NAME.TextcolF, \
          VAR_NAME.TextcolB, (char*)VAR_NAME.str, VAR_NAME.size); \
        }
    
    TEMPLATE_BUTTONS_FUNC ( ButtonReadOn , ReadButton )
    TEMPLATE_BUTTONS_FUNC ( ButtonDellOn , DellButton )
    
    • 0

相关问题

  • free 出于某种原因不会从内存中删除数组

  • 请帮助代码

  • 为什么 masm 对字符串或文本文字太长发誓,为什么在结构中设置 db 或 dw?

  • 如何将数字拆分为位并将其写入 C 中的数组?

  • 如何以给定的角度移动物体?

  • 解决“子集和问题”的时效算法

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    表格填充不起作用

    • 2 个回答
  • Marko Smith

    提示 50/50,有两个,其中一个是正确的

    • 1 个回答
  • Marko Smith

    在 PyQt5 中停止进程

    • 1 个回答
  • Marko Smith

    我的脚本不工作

    • 1 个回答
  • Marko Smith

    在文本文件中写入和读取列表

    • 2 个回答
  • Marko Smith

    如何像屏幕截图中那样并排排列这些块?

    • 1 个回答
  • Marko Smith

    确定文本文件中每一行的字符数

    • 2 个回答
  • Marko Smith

    将接口对象传递给 JAVA 构造函数

    • 1 个回答
  • Marko Smith

    正确更新数据库中的数据

    • 1 个回答
  • Marko Smith

    Python解析不是css

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5