通过创建循环简化一些重复操作的代码
Simplify the codes for some repeated actions by creating loops
这是我的代码执行一系列整数端口的数据重置。
//note function: void resetData(int pin);
resetData(p00);
resetData(p01);
resetData(p02);
resetData(p03);
resetData(p04);
resetData(p05);
resetData(p06);
resetData(p07);
resetData(p10);
resetData(p11);
resetData(p12);
resetData(p13);
resetData(p14);
resetData(p15);
resetData(p16);
resetData(p17);
resetData(p50);
resetData(p51);
resetData(p80);
resetData(p81);
resetData(p82);
resetData(p83);
resetData(p84);
resetData(p85);
resetData(p86);
resetData(p87);
resetData(p110);
resetData(p111);
resetData(p112);
resetData(p113);
resetData(p114);
resetData(p115);
resetData(p116);
resetData(p117);
在上述代码中,有不同类型的端口(分组在一起),并且由resetData
处理。是否可以通过创建一些循环来简化这些长的代码,而无需更改resetData
的定义?谢谢!
您可以创建一个在引脚组上起作用的函数:
void myResetData(const std::vector<int> &pins)
{
for (auto pin : pins)
{
resetData(pin);
}
}
然后,使用它:
void f()
{
std::vector<int> group1{ p00, p01, p02, p03, p04, p05, p06, p07 },
group2{ p10, p11, p12, p13, p14, p15, p16, p17 };
myResetData(group1);
myResetData(group2);
}
或仅:
void f()
{
myResetData(std::vector<int>{ p00, p01, p02, p03, p04, p05, p06, p07 });
myResetData(std::vector<int>{ p10, p11, p12, p13, p14, p15, p16, p17 });
}
您甚至可以摆脱:
void f()
{
myResetData({ p00, p01, p02, p03, p04, p05, p06, p07 });
myResetData({ p10, p11, p12, p13, p14, p15, p16, p17 });
}
int ports[] = {p00,p01,p02,p03,p04,p05,p06,p07,
p10,p11,p12,p13,p14,p15,p16,p17,
p50,p51,
p80,p81,p82,p83,p84,p85,p86,p87,
p110,p111,p112,p113,p114,p115,p116,p117};
int portsNum = sizeof(ports)/sizeof(*ports);
for(int i=0;i<portsNum;i++)
{
resetData(ports[i]);
}
相关文章:
- 此代码中的操作流程是什么?C/C++.
- LLVM |如何实现逻辑非操作的 IR 代码生成
- 堆栈粉碎 在我在代码中添加新变量以及一些操作后C++检测到
- 插入操作的二叉搜索树代码问题
- CPP DLL 自定义操作代码在安装过程中未执行
- 在链接的程序集文件中,我想从 c++ 调用代码访问变量.是否可以在不触发访问冲突的情况下执行此操作?
- 在定义交换操作时减少代码重复
- 为什么此代码是同一操作的2倍
- 为什么我的朋友操作超载代码将输出算出为零
- 通过创建循环简化一些重复操作的代码
- 对 NULL 值的按位操作是否会使C++中的代码崩溃
- 非逻辑代码流 /无效的向量操作
- 代码导致数据结构操作崩溃
- 程序在用户的第一个输入时不执行任何操作(跳过程序中的整个代码)
- 使用 CAsynSocket,如何捕获套接字操作的退出代码?
- 请帮助我理解上述代码行为。了解 void 指针和双 void 指针操作
- C++ 指针在此代码中执行的操作
- 在此字符串操作代码中获取out_of_range错误
- 条件操作和大括号会影响代码吗?
- 位操作-C/C++代码,将字符数组视为位流