【发布时间】:2020-12-23 14:49:51
【问题描述】:
我有一个结构并希望像数组一样打印所有成员变量。
结构是这样的
#pragma pack(push) /* push current alignment to stack */
#pragma pack(1) /* set alignment to 1 boundary */
struct testStruct {
int a = 6;
int b[5] = {1,2,3,4,5};
} testStruct1 ;
#pragma pack(pop) /* restore original alignment from stack */
我正在尝试类似的东西
for(int i = 0; i < 6; i++)
{
printf("%d, ", testStruct1 + i);
}
这无法编译。我不愿意声明一个新数组来 memcpy 里面的所有成员。
我想看看
6, 1, 2, 3, 4, 5,
有什么办法吗??? 谢谢
【问题讨论】:
-
printf( "%d, ", teststruct1.b[i] ); -
写你自己的
printX()或者写一个在数组上运行的循环。printf()不知道如何打印数组。 -
这不是初始化结构变量的正确方法
-
testStruct1 + i是不正确的,因为 a) testStruct1 甚至不是指向结构的指针,b) 指向结构的指针也不会那样工作。