96没错:16(char) + 19*4(long) + 4(int) = 96

解决方案 »

  1.   

    以上說的都對, 你是不是把int數成2bytes呀, int在VC中是4bytes的
    而且VC中structure是對齊的, 請參看:
    http://www.csdn.net/expert/TopicView.asp?id=379710
      

  2.   

    int类型和long类型在VC中都是4字节的,检查一下。
      

  3.   

    谢谢高手的答复,可问题的关键是:这个文件的数据结构的确是94个字节为一条记录,前面那一段一直到int kong3;都是对得上号的,问题是在最后要补2个字节,这2个字节在数据中没有任何内容,但是必补不可,用short int kong4; 也是96个字节,看了Tomas的发言以及他所提供的网页中的内容,有道理,但是如果用他的方法,//***********如果想動態修改對齊的byte數, 就要
    #progma pack(1) // 對齊1byte
    struct abc
    {
    char a;  // 1
    int b;  // 4
    int *c;  // 4
    };
    #progma pack() // 恢復原設定
    這樣這個structure的size就是9了
    //*******
    在VC++中不能被编译通过,问题在哪里,到底
    怎么补??
      

  4.   

    谢谢Thomas,我已经编译通过了,他提供的网页把#pragma写成了#progma,难怪通不过,谢谢大家,我是菜鸟,不知如何给各位加分???