客服QQ:250304218 9459803 维修网站群:中华维修网 | 维修资料下载 | 中华维修论坛
新闻资讯 网络学院 电脑维修 办公维修 家电维修 维修视频 维修资料 中维商城 维修论坛
业界硬件办公家电数码
操作系统安全技术软件应用媒体动画图形图像办公系列网络应用
维修基础软件专题CPU/内存故障硬盘专栏显示器鼠标键盘电源/主板故障声卡显卡光储设备网络设备笔记本
导购DIY专区硒鼓加粉打印机复印机传真机 扫描仪一体机
电视维修影音设备家电常识综合电器
  您现在的位置: 中华维修网 >> 网络学院 >> 程序设计 >> 正文
GNU C __attribute__ 机制简介
作者:佚名 文章来源:本站原创 点击数: 更新时间:2008-4-28 13:32:00

aligned (alignment)
该属性规定变量或结构体成员的最小的对齐格式,以字节为单位。例如:

int x __attribute__ ((aligned (16))) = 0;

编译器将以16字节(注意是字节byte不是位bit)对齐的方式分配一个变量。也可以对结构体成员变量设置该属性,例如,创建一个双字对齐的int对,可以这么写:

struct foo { int x[2] __attribute__ ((aligned (8))); };

如上所述,你可以手动指定对齐的格式,同样,你也可以使用默认的对齐方式。如果aligned后面不紧跟一个指定的数字值,那么编译器将依据你的目标机器情况使用最大最有益的对齐方式。例如:

short array[3] __attribute__ ((aligned));

选择针对目标机器最大的对齐方式,可以提高拷贝操作的效率。
aligned属性使被设置的对象占用更多的空间,相反的,使用packed可以减小对象占用的空间。
需要注意的是,attribute属性的效力与你的连接器也有关,如果你的连接器最大只支持16字节对齐,那么你此时定义32字节对齐也是无济于事的。
packed
使用该属性可以使得变量或者结构体成员使用最小的对齐方式,即对变量是一字节对齐,对域(field)是位对齐。
下面的例子中,x成员变量使用了该属性,则其值将紧放置在a的后面:

     struct test
      {
        char a;
        int x[2] __attribute__ ((packed));
      };

其它可选的属性值还可以是:cleanup,common,nocommon,deprecated,mode,section,shared,tls_model,transparent_union,unused,vector_size,weak,dllimport,dlexport等,
详细信息可参考:
http://gcc.gnu.org/onlinedocs/gcc-4.0.0/gcc/Variable-Attributes.html#Variable-Attributes
类型属性(Type Attribute)
关键字__attribute__也可以对结构体(struct)或共用体(union)进行属性设置。大致有六个参数值可以被设定,即:aligned, packed, transparent_union, unused, deprecated 和 may_alias。
在使用__attribute__参数时,你也可以在参数的前后都加上“__”(两个下划线),例如,使用__aligned__而不是aligned,这样,你就可以在相应的头文件里使用它而不用关心头文件里是否有重名的宏定义。
aligned (alignment)
该属性设定一个指定大小的对齐格式(以字节为单位),例如:

struct S { short f[3]; } __attribute__ ((aligned (8)));
typedef int more_aligned_int __attribute__ ((aligned (8)));

上一页  [1] [2] [3] [4] [5] [6] [7] 下一页

 主板维修教材  笔记本维修视频教程  硬盘维修视频教程  芯片级焊接教学视频   电路基础教程   维修工具 
文章录入:鞠中山    责任编辑:鞠中山 
【字体:
最近更新
· ASP错误代码说明
· ASP错误代码说明
· 关于Adodb.Stream 的使用说明
· 关于Adodb.Stream 的使用说明
· 解决IIS5 HTTP500内部错误
· asp控制xml数据库的6段非常的经典代码
· ASP技术与PHP,CGI,JSP等技术的比较
· 用ASP制作饼图、柱状图等
· FlashMX新特性详解(四)学习资源和软件
· 导入电影的控制
推荐文章
· Windows XP系统被远程入侵
· 在网吧QQ密码被盗
· 浏览一些网页后硬盘被完全共享
· 共享文件后经常死机
· IE无法打开网页
· 病毒导致鼠标不能正常工作
· 病毒导致花屏
· 在Java中获取系统属性
· JAVA MSN机器人主要代码开放
· 计算机等级考试三级网络技术复习提纲
关于中维 | 联系方法 | 付款方式 | 广告服务 | 加入我们 | 帮助中心 | 网站地图 | 友情合作 | 加入收藏 | 设为首页
Copyright (C) 1999-2006 91Xiu.Com, All Rights Reserved 版权所有 中华维修网
全国统一客服热线: 400-658-3058 未开通400地区请拨打0536-3289280 13306362398
客服QQ:250304218 9459803 
 
青州众维科技 版权所有    鲁ICP备05001127号