/\n * @brief 启动按钮功能,将句柄添加到工作列表中。\n * @param handle: 目标句柄结构体。\n * @retval 0: 成功。-1: 已存在。\n /\nint button_start(struct Button handle)\n{\n\tstruct Button* target = head_handle;\n\twhile(target) {\n\t\tif(target == handle) return -1; //已存在。\n\t\ttarget = target->next;\n\t}\n\thandle->next = head_handle;\n\thead_handle = handle;\n\treturn 0;\n}\n\n/\n * @brief 停止按钮功能,从工作列表中移除句柄。\n * @param handle: 目标句柄结构体。\n * @retval None\n /\nvoid button_stop(struct Button handle)\n{\n\tstruct Button** curr;\n\tfor(curr = &head_handle; curr; ) {\n\t\tstruct Button entry = curr;\n\t\tif(entry == handle) {\n\t\t\tcurr = entry->next;\n\t\t\t// free(entry);\n\t\t\treturn;//glacier add 2021-8-18\n\t\t} else {\n\t\t\tcurr = &entry->next;\n\t\t}\n\t}\n}\n\n/**\n * @brief 后台滴答,定时器每5ms重复调用。\n * @param None.\n * @retval None\n /\nvoid button_ticks(void)\n{\n\tstruct Button target;\n\tfor(target=head_handle; target; target=target->next) {\n\t\tbutton_handler(target);\n\t}\n}

C语言按钮功能函数详解:启动、停止和后台滴答

原文地址: https://www.cveoy.top/t/topic/nsWB 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录