我正在开发一个 C/C++ 应用程序,其中我正在使用打包的结构成员。我读过我们永远不应该将压缩结构成员的地址传递给任何函数(当通过引用函数作为参数传递压缩结构成员时,我总是会遇到对齐错误)。所以我想知道这是否适用于 sscanf 等内置类似函数的情况。这是我的代码片段
#pragma pack(push,1)
struct A
{
char a;
short b;
int c;
};
#pragma pack(pop)
int main(int argc, char* argv[])
{
struct A abc;
char ch[100];
...
//read some data from file into character array ch
sscanf(ch,"%hu %d",&abc.b,&abc.c);
...
return 0;
}
我正在运行我的 Power PC 架构应用程序。