#pragma DATA_ALIGN作用

转载 2013年12月05日 22:04:37

#pragma,是一个编译控制指令,可以在编译时动态地调整编译选项,这种指令在不同的编译系统中是不同的

#pragma DATA_ALIGN( symbol,constant)指令的作用是:排列排列symbol到constant指点的列边界上

#pragma DATA_ALIGN( rxdata_stream,   128)
就是让rxdata_stream地址的末尾7位是0(二进制地址),就是128字节对齐。
对齐的目的,一般是位了CACHE读写外存。
如果一个CACHE的line是128字节。这样,如果数据128字节对齐,那么取一个128字节的数据,只使用一个CACHE行就够了。

 

char efd;
#prgma DATA_ALIGN(efd, 8)
编译时一定会把efd变量的地址安排在8字节对齐的位置上,也即efd地址的低3位一定为0。

 

相关文章推荐

(转)内存对齐 #pragma pack(n) __declspec(align(#))

内存对齐 #pragma pack(n) __declspec(align(#))2008年11月13日 星期四 16:10看一下这两个指令是如何影响变量在内存的存储的。1、pack pragma p...
  • gxj1680
  • gxj1680
  • 2011年05月11日 17:34
  • 646

C++对齐杂注__declspec(align(#))和#pragma pack的区别

一般来讲, 访问未对齐的内存(misaligned access)轻则影响效率, 重则引发异常(包括指令执行异常和结构体对齐不正常引发的逻辑BUG等), 总之内存对齐是程序员尤其是C/C++程序员是不...
  • rrrfff
  • rrrfff
  • 2012年04月08日 10:08
  • 47755

#pragma pack( n )和__declspec( align(#) )

这么复杂的东西,不用中文压根说不清楚。用英文写,写了也等写火星文。 现在的一些处理器,需要你的数据的内存地址必须是对齐(align)的,即使不是必须,如果你对齐的话,运行的速度也会得到提升。虽然...
  • xuleilx
  • xuleilx
  • 2012年05月04日 10:25
  • 451

数据对齐的作用(于ALIGN密切相关)

首先由结构体的大小计算方式可以引出这个问题。在过去的学习当中我们可以知道,一个结构体的大小就是其成员变量大小之和。然而在编译器中利用sizeof一个结构体变量时你会发现,结构体的大小往往大于预期。这是...
  • lampqiu
  • lampqiu
  • 2011年06月12日 22:09
  • 1539

【text-align】如何对div元素起作用

父元素:text-align:center; div子元素:marign:0px auto; 通过在当前元素使用margin:0px auto可以实现当前元素在父元素中的水平居...

长见识了——text-align和margin:0 auto的作用对象及它们的不同

基本概念: 1.text-align: 属性规定元素中的文本的水平对齐方式; 该属性通过指定行框与哪个点对齐,从而设置块级元素内文本的水平对齐方式;一般情况下设置文本对齐方式的时使用此属性。支持值 j...

#pragma data_seg介绍

用#pragma data_seg建立一个新的数据段并定义共享数据,其具体格式为:   #pragma data_seg ("shareddata")        HWND sharedwnd=NU...

#pragma data_seg

#pragma data_seg 在Win16环境中,DLL的全局数据对每个载入它的进程来说都是相同的;而在Win32环境中,情况却发生了变化,DLL函数中的代码所创建的任何对象(包...

进程共享变量#pragma data_seg用法

#pragma data_seg介绍          用#pragma data_seg建立一个新的数据段并定义共享数据,其具体格式为:    #pragma dat...

进程共享变量#pragma data_seg用法

#pragma data_seg介绍          用#pragma data_seg建立一个新的数据段并定义共享数据,其具体格式为:    #pragma data_se...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:#pragma DATA_ALIGN作用
举报原因:
原因补充:

(最多只允许输入30个字)