CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C语言

关于位图头文件在vc++6.0下丢失的两个字节

楼主jiayinjia1983116(嘉嘉)2006-07-02 18:39:35 在 C/C++ / C语言 提问

//以下是我用c语言在vc++6.0下写的一个程序的一部分,奇怪的是结构体的总字节数与单个字节之和差两个字节.请高手指教.  
   
   
   
  #include"stdio.h"  
  void   main()  
  {  
  //BMP文件头  
   
  typedef   struct   tagBITMAPFILEHEADER   {   /*   bmfh   */  
   
        short         bfType;    
        long           bfSize;    
        short         bfReserved1;    
        short         bfReserved2;    
        long           bfOffBits;    
   
   
  }   BITMAPFILEHEADER;  
   
  printf("the   size   of   long   is:%d\n",sizeof(long));                                
  printf("the   size   of   short   is:%d\n",sizeof(short));  
  printf("the   total   sum   size   of   struct   is:%d\n",2*sizeof(long)+3*sizeof(short));  
  printf("the   toatal   size   of   s   is:%d\n",sizeof(BITMAPFILEHEADER));  
   
  }  
   
   
   
  //长整型为4个字节,短整型为2个字节,相加的和为:2*4+3*2=14,但为什么BITMAPFILEHEADER  
  //的大小为16字节呢  
   
  //更奇怪的是如果将第一个短整形注释掉,总合与单个变量的大小相加和吻合  
  //如果将其中任一一个长整型注释掉,总合与单个变量的大小相加之和差 问题点数:20、回复次数:3Top

1 楼sasdaa(被水淹死的鱼!)回复于 2006-07-02 18:58:09 得分 10

字节对齐!Top

2 楼yingge(...木脑壳...)回复于 2006-07-02 20:09:36 得分 10

如楼上所说,编译器都会采用字节对齐的方式的,楼主要看看书啊Top

3 楼jiayinjia1983116(嘉嘉)回复于 2006-07-02 21:14:18 得分 0

谢谢以上两位的回复,我在网上也搜索过了,确实如两位所说.Top

相关问题

关键词

得分解答快速导航

  • 帖主:jiayinjia1983116
  • sasdaa
  • yingge

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo