关于结构体字节对齐的问题,望大家不吝指教。

我在实际工作中遇到这样一个问题:
假如结构体及其变量:
struct MYSTRUCT{
float fA;
char chB;
}mystruct;

int main(){
printf(“Size of mystruct=%d\n”,sizeof(mystruct));
return 0;
}
分别保存为main.c,main.cpp(内容相同)
用gcc main.c 编译链接结果为Size of mystruct=8
用g++ main.cpp 编译链接结果为Size of mystruct=8
用gcc -fpack-struct main.c 编译链接结果为Size of mystruct=5
用g++ -fpack-struct main.cpp 编译链接结果为Size of mystruct=8

谁能告诉我,用g++编译时如何能保证数据结构的字节数就是实际字节数(即输出结果为5),而不会添加多余的字节以达到按某种字节数对齐?
也就是需要在编译,链接时加上什么选项才能保证字节数为实际大小?

#include <_pack1.h>
struct MYSTRUCT {
    float fA;
    char chB;
} mystruct;
#include <_packpop.h>

...

It works very well.
I would like to thank xtang for his warm help.