[英]initialize pointer to an array of constants
我试图避免临时变量。 但我无法弄清楚正确的语法:
typedef struct {
int n;
int *ptr;
} i_cant_change_this_typedef;
i_cant_change_this_typedef foo;
i_cant_change_this_typedef bar;
int main(void) {
foo.n = 123;
int tmp[] = {0x01,0x02,0x03};
foo.ptr = tmp;
bar.n = 321;
/* can this be done somehow? */
/* bar.ptr = {0x03,0x02,0x01};*/
}
我不得不制作中间 tmp 变量,这让我很烦恼。 底部的注释行应该显示我正在尝试做的事情。
可以做到吗,怎么做?
啊,是的,我在这里使用常规的 gcc/g++。
更新:我知道我应该提到我更喜欢在 C 和 C++ 中同样有效的解决方案。 它将用于应避免过于复杂的动态分配的嵌入式解决方案。
您可以创建一个复合文字并让指针指向它:
bar.ptr = (int []){0x03,0x02,0x01};
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.