项目中第一个自己独立写出来的函数:
/**
* @brief 根据cmd_table的name变量来查询并设置其usage和name变量的值
* @param name cmd_table的name变量
* @param usage 需要设置的新usage变量值
* @param nname 需要设置的新name变量值
*/
void cmd_table_member_init(char* name, char* usage, char* nname) {
int len = (sizeof(cmd_table) / sizeof(cmd_table[0])); // 获取数组长度
int index = -1; // 初始化下标为-1,用于找到对应下标
for (int i = 0; i < len; i++) {
if (strcmp(cmd_table[i].name, name) == 0) { // 找到对应名字的下标则记录下标并退出循环
index = i;
break;
}
}
if (index != -1) { // 如果找到这个标签则直接赋值
cmd_table[index].name = nname;
cmd_table[index].usage = usage; // 直接赋值即可
} else { // 找不到则可能名字输入错误
syslog(LOG_LOCAL4 | LOG_DEBUG, "cmd_table_member_init find index error, name is:%s\n", name);
}
}
优雅,果然学算法还是很有用