我想我能依稀记得几年前看到过一种方法,它基本上可以输入变量结构并处理其成员,而无需每次都调用变量名。类似于我们如何“使用命名空间 bla”。它甚至可能来自 pascal 是我使用过的一些左字段 API。 例如
typedef struct time{
uint8_t hour;
uint8_t minute;
uint8_t second;
uint8_t period;
}time;
void clockFunct(){
static time clock{0,0,0,am};
/*SOME SYNTAX THAT I CANT FIND/REMEMBER*/ clock{
hour = 2;
minute = 30;
second = 20;
period = pm
};
}
我可以创建一些局部变量并将其传回,但我正在研究微 Controller ,所以空间有点贵……或者只是不要偷懒并写下结构名称。只是想我会把它放在那里,看看是否有人知道我在说什么
最佳答案
既然你做了标记 C++,你可以在不久的将来做你想做的事(尽管它的可取性值得怀疑)。 c++17看到引入了结构化绑定(bind)到该语言:
static time clock{0,0,0,am};
{
auto& [hour, minute, second, period] = clock;
hour = 2;
minute = 30;
second = 20;
period = pm;
};
在 block 范围内,这些标识符将引用(由于引用限定符)clock
的成员。实际上,您根本不需要 block 作用域。我只是将其限制为更接近地模拟您想要的语义。
关于c++ - 工作 "within"结构 C/C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46659996/