| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 428 人关注过本帖
标题:#pragma 函数的问题?
只看楼主 加入收藏
zcdjt
Rank: 3Rank: 3
等 级:论坛游侠
威 望:4
帖 子:99
专家分:181
注 册:2014-9-9
结帖率:85.71%
收藏
已结贴  问题点数:10 回复次数:4 
#pragma 函数的问题?
#include<iostream.h>
#pragma(8)
struct example1
{
  short a;
  long b;
}
struct example2
{
  char c;
  example1 struct1;
  short e;
}
#pragma pack()
int main(int argc,char *argv[])
{
 example2 struct2;
 cout<<sizeof(example1)<<endl;
 cout<<sizeof(example2)<<endl;
 cout<<(unsigned int)(&struct2.struct1)-(unsigned int)(&struct2)<<endl;
 return 0;
}
输出结果是:8,16,4
请问结果16,4怎样求出?
主函数括号中表示什么意思?
结构体中的变量a,b,c,e和结果有关系没?
搜索更多相关主题的帖子: include 
2014-10-07 21:13
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:2 
实测你的代码无法通过编译

DO IT YOURSELF !
2014-10-08 13:41
ClarenceC
Rank: 2
等 级:论坛游民
帖 子:54
专家分:18
注 册:2014-1-10
收藏
得分:8 
这个涉及到边界对齐的问题,各个成员按照它们被声明的顺序在内存中顺序存储,第一个成员的地址和整个结构的地址相同。自然对界(natural alignment)即默认对齐方式,是指按结构体的成员中size最大的成员对齐。
使用伪指令#pragma pack (n),编译器将按照n个字节对齐;使用伪指令#pragma pack (),取消自定义字节对齐方式。
具体请参考http://blog.
2014-10-08 15:48
zcdjt
Rank: 3Rank: 3
等 级:论坛游侠
威 望:4
帖 子:99
专家分:181
注 册:2014-9-9
收藏
得分:0 
知道了!

今朝醉
2014-10-10 13:34
快速回复:#pragma 函数的问题?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019211 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved