VC禁止结构体数据对齐

C/C++ > 工具平台和程序库 [问题点数:20分,结帖人cattycat]
等级
本版专家分:42492
勋章
Blank
红花 2010年7月 C/C++大版内专家分月排行榜第一
2010年6月 C/C++大版内专家分月排行榜第一
2010年4月 C/C++大版内专家分月排行榜第一
Blank
蓝花 2010年5月 C/C++大版内专家分月排行榜第三
2010年3月 C/C++大版内专家分月排行榜第三
2010年1月 C/C++大版内专家分月排行榜第三
结帖率 100%
等级
本版专家分:36660
勋章
Blank
签到新秀 累计签到获取,不积跬步,无以至千里,继续坚持!
Blank
红花 2011年9月 Linux/Unix社区大版内专家分月排行榜第一
2008年11月 C/C++大版内专家分月排行榜第一
Blank
黄花 2012年11月 Linux/Unix社区大版内专家分月排行榜第二
2011年8月 Linux/Unix社区大版内专家分月排行榜第二
2008年10月 C/C++大版内专家分月排行榜第二
Blank
蓝花 2012年8月 Linux/Unix社区大版内专家分月排行榜第三
等级
本版专家分:36660
勋章
Blank
签到新秀 累计签到获取,不积跬步,无以至千里,继续坚持!
Blank
红花 2011年9月 Linux/Unix社区大版内专家分月排行榜第一
2008年11月 C/C++大版内专家分月排行榜第一
Blank
黄花 2012年11月 Linux/Unix社区大版内专家分月排行榜第二
2011年8月 Linux/Unix社区大版内专家分月排行榜第二
2008年10月 C/C++大版内专家分月排行榜第二
Blank
蓝花 2012年8月 Linux/Unix社区大版内专家分月排行榜第三
等级
本版专家分:3403
等级
本版专家分:67
等级
本版专家分:42492
勋章
Blank
红花 2010年7月 C/C++大版内专家分月排行榜第一
2010年6月 C/C++大版内专家分月排行榜第一
2010年4月 C/C++大版内专家分月排行榜第一
Blank
蓝花 2010年5月 C/C++大版内专家分月排行榜第三
2010年3月 C/C++大版内专家分月排行榜第三
2010年1月 C/C++大版内专家分月排行榜第三
cattycat

等级:

Blank
红花 2010年7月 C/C++大版内专家分月排行榜第一
2010年6月 C/C++大版内专家分月排行榜第一
2010年4月 C/C++大版内专家分月排行榜第一
Blank
蓝花 2010年5月 C/C++大版内专家分月排行榜第三
2010年3月 C/C++大版内专家分月排行榜第三
2010年1月 C/C++大版内专家分月排行榜第三
结构体中字节对齐问题(转载)

struct MyStruct { double dda1; char dda; ...对结构MyStruct采用sizeof会出现什么结果呢?...sizeof(MyStruct)=sizeof(double)+sizeof(char)+sizeof(int)=13 ...但是当在VC中测试上面结构的大小时,你会发...

结构体内存对齐

http://www.cppblog.com/snailcong/archive/2009/03/16/76705.html 首先由一个程序引入话题: 1//环境:vc6+windowssp22//程序13#include<iostream>45usingnamespacestd;67structst18{...

结构体内存对齐问题

原则1、数据成员对齐规则:结构(struct或联合union)的数据成员,第一个数据成员放在offset为0的地方,以后每个数据成员存储的起始位置要从该成员大小的整数倍开始(比如int在32位机为4字节,则要从4的整数倍地址...

结构体数据对齐

结构体数据对齐 结构体数据对齐,是指结构体内的各个数据对齐。在结构体中的第一个成员的首地址等于整个结构体的变量的首地址,而后的成员的地址随着它声明的顺序和实际占用的字节数递增。为了总的结构体大小对齐,...

关于VC结构体内存对齐问题

#include //pragma pack(8) int main() { struct key{ int a; char b; long double c; char d; }kk; struct key1{ int a; char b; int c; }kk1; struct key2{ char a;... char

结构体数据对齐方式

问题来源:Intel UMC中的VideoData类的成员函数SetAlignment(Ipp32s iAlignment)umc_video_data.cppStatus VideoData::SetAlignment(Ipp32s iAlignment){ // check alignment Ipp32s i; if(iAlignment return

VC6默认设置下结构体对齐大小

项目右键 --> Setting --> C/C++ --> Code ... 原则1: 数据成员的对齐规则  结构的数据成员,第一个数据成员放在offset为0的地方,以后每个数据成员存储的起始位置要从该成员大小的整数倍开始。  ( 比如int在32

VC结构体边界对齐

VC中,结构中各种数据类型有不同的对齐方式: char 对齐偏移量必须是1的倍数 short 对齐偏移量必须是2的倍数 int 对齐偏移量必须是4的倍数 float 对齐偏移量必须是4的倍数 double 对齐偏移量必须是8的倍数 ...

结构体字节对齐(vc++)

结构体字节对齐问题 1.引出问题  我们先来看两个小程序  #include  struct fiber1  {  char p1;  short p2;  int p3;  }  struct fiber2  {

结构体字节对齐和位域对齐——VC、gcc

一个变量占用 n 个字节,则该变量的起始地址必须能够被 n 整除,即: 存放起始地 址 % n = 0,对于结构体而言, 这个 n 取其成员中的数据类型占空间的值最大的那个。 (2)为什么要字节对齐 内存空间是按照字节来划分...

结构体字节对齐

结构体字节对齐

C++ 结构体内存对齐

最近工作时需要用到内存对齐,查了资料。发现比较乱且观点不一,因此验证并总结。下面所写都是在实际中得到验证。 环境:XP,VC6.0. 内存对齐又称字节对齐,可以加快系统的处理速度。在结构体中的存储中尤其重要,...

什么是C语言结构体字节对齐,为什么要对齐?

 对齐数据在内存中的位置有关。如果一个变量的内存地址正好位于它长度的整数倍,他就被称做自然对齐。比如在32位cpu下,假设一个整型变量的地址为0x00000004,那它就是自然对齐的。    二、为什么要字节对齐  ...

C 结构体字节对齐规则

文档下载:结构体字节对齐规则 原则1:数据成员的对齐规则(以最大的类型字节为单位)。 结构体(struct)的数据成员,第一个数据成员放在offset为0的地方,以后每个数据成员存放在offset为该数据成员大小的整数倍的...

结构体对齐方式

不同平台内存对齐方式不同。 如果使用结构体进行平台间的通信,会有问题。 例如,发送消息的平台上,结构体为24字节,接受消息的平台上,此结构体为32字节(只是随便举个例子),那么每个变量对应的值就不对了。 ...

c语言中结构体内存对齐规则详解

对齐:  现代计算机中内存空间都是按着byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定变量的时候经常在特定的内存地址访问,这就是需要各类型数据按照一定的规则在...

结构体对齐

一、概念 对齐数据在内存中的位置有关。如果一个变量的内存地址正好位于它长度的整数倍,他就被称做自然对齐。比如在32位cpu下,假设一个整型变量的地址为0x00000004,那它就是自然对齐的。 二、为什么要字节...

C语言字节对齐、结构体对齐最详细的解释

 对齐数据在内存中的位置有关。如果一个变量的内存地址正好位于它长度的整数倍,他就被称做自然对齐。比如在32位cpu下,假设一个整型变量的地址为0x00000004,那它就是自然对齐的。   二、为什么要字节对齐  ...

linux中结构体对齐

首先我们先看看下面的C语言的结构体: [cpp] view plaincopy typedef struct MemAlign  {   int a;   char b[3];   int c;  }MemAlign;   以上这个结构体占用内存多少空间呢?也许你...

再谈:自定义结构体对齐问题之__attribute__ ((packed))方法

 我们在程序开发过程中往往会遇到这样的问题:以某种数据格式写入,再以此格式读出,特别是socket通信中,通常会遇到数据错位问题,这就是数据结构的对齐的问题。为了让我们的数据结构以最优的方式存储,处理,保证...

关于结构体内存对齐

内存对齐”应该是编译器的“管辖范围”。编译器为程序中的每个“数据单元”安排在适当的位置上。但是C语言的一个特点就是太灵活,太强大,它允许你干预“内存对齐”。如果你想了解更加底层的秘密,“内存对齐...

c语言结构体对齐

C语言结构体对齐也是老生常谈的话题了。基本上是面试题的必考题。内容虽然很基础,但一不小心就会弄错。写出一个struct,然后sizeof,你会不会经常对结果感到奇怪?sizeof的结果往往都比你声明的变量总长度要大,这...

结构体字节对齐问题

结构体(struct)的sizeof值,并不是简单的将其中各元素所占字节相加,而是要考虑到存储空间的字节对齐问题。先看下面定义的两个结构体. struct {  char a;  short b;  char c; }S1; struct {  char a; ...

C/C++ 解决sizeof求结构体大小(结构体内存对齐

C/C++中不同数据类型所占用的内存大小 32位64位 char11 int4大多数4,少数8 short2...

关于结构体数据对齐(About data alignment)

 这里默认使用VC编译器,默认8bytes 对齐的,对于结构体struct struct_x { char a; // 1 byte int b; // 4 bytes short c; // 2 bytes char d; // 1 byte} ; 编译器会自动插入一些pad 

c/c++结构体内存对齐vc6.0)

首先编译环境是vc6.0 在sizeof(结构体)时,内存对齐的方式总结: 首先找到整个结构体中占用字节最大的类型,假设它占用的字节数为M,然后开始按声明顺序依次相加,得到字节数m,如果m总字节数不足M,则往后看下一位...

C语言结构体的字节对齐实例【C语言笔试题】

一、笔试题目:在一个64位的操作系统中定义如下结构体: struct st_task { uint16_t id; uint32_t value; uint64_t timestamp; }; 同时定义fool函数如下: void fool() { st_task task = {}; uint64...

VS2017设置结构体字节对齐大小

是因为结构体存在字节对齐的概念,为了提高存取效率,32位的计算机,一次可以读取4个字节的内存,如果不进行字节对齐操作,读取一个 int 值的数据,可能需要两次读取内存操作,大大的减小了内存读取效率,这个编译器...

C语言结构体的1字节对齐(代码实现)

#define BYTE1 __attribute__((packed, aligned(1))) // aligned(几字节对齐数) typedef struct //默认4字节对齐 { int num1; char ch1; int num2; char ch2; }Str_four; typed...

C语言结构体中的数据对齐

C语言结构体中的数据对齐 上C++实验课的时候,坐在我旁边的同学问了我一个问题: struct { char a; int b; double c; } sa; 其中sizeof(char) =1; sizeof(int) = 4; sizeof(double) = 8; 所以sizeof(sa)应该等于1+4+...

相关热词 如何c#按钮透明 c#能跨平台吗 c#中遍历字典 c# 斜率 最小二乘法 c# mysql完整项目 c# grid 总行数 c# web浏览器插件 c# xml 生成xsd c# 操作sql视图 java调用c#接口