__attribute__((aligned(n)))的使用

问题描述

__attribute__((aligned(n)))的使用

attribute((aligned(n)))改变结构体对其方式怎么使用 为何在VS2005里面编译通过不了,aligned关键字不认识?

时间: 2024-09-19 08:57:24

__attribute__((aligned(n)))的使用的相关文章

GNU C 扩展之__attribute__ 机制简介

  在学习linux内核代码及一些开源软件的源码(如:DirectFB),经常可以看到有关__attribute__的相关使用.本文结合自己的学习经历,较为详细的介绍了__attribute__相关语法及其使用. ---------------------------------------------------------------- 声明:     此文为原创,欢迎转载,转载请保留如下信息     作者:聂飞(afreez)  北京-中关村     联系方式:afreez@sina.co

__ATTRIBUTE__ 你知多少?【转】

转自:http://www.cnblogs.com/astwish/p/3460618.html GNU C 的一大特色就是__attribute__ 机制.__attribute__ 可以设置函数属性(Function Attribute ).变量属性(Variable Attribute )和类型属性(Type Attribute ). __attribute__ 书写特征是:__attribute__ 前后都有两个下划线,并切后面会紧跟一对原括弧,括弧里面是相应的__attribute__

[gcc核心扩展]关于gcc中的typeof以及其他东东

(使用以下扩展可能需要使用-gnu99)   GNC CC是一个功能非常强大的跨平台C编译器,它对C 语言提供了很多扩展,这些扩展对优化.目标代码布局.更安全的检查等方面提供了很强的支持.本文把支持GNU 扩展的C 语言称为GNU C. Linux 内核代码使用了大量的 GNU C 扩展,以至于能够编译 Linux 内核的唯一编译器是 GNU CC,以前甚至出现过编译 Linux 内核要使用特殊的 GNU CC 版本的情况.本文是对 Linux 内核使用的 GNU C 扩展的一个汇总,希望当你读

SMP架构多线程程序的一种性能衰退现象—False Sharing

很久没更新博客了,虽然说一直都在做事情也没虚度,但是内心多少还是有些愧疚的.忙碌好久了,这个周末写篇文章放松下. 言归正传,这次我们来聊一聊多核CPU运行多线程程序时,可能会产生的一种性能衰退现象--False Sharing. 貌似很高大上?No No No,我相信看完这篇文章之后你会完全理解False Sharing,并且能够在设计和编写多线程程序的时候意识到并完美解决这个问题. OK,我们开始吧. 首先,False Sharing的产生需要几个特定条件:CPU具有多个核心,其上运行着的同一

Linux内核文件系统-页高速缓存

Linux内核的VFS是非常经典的抽象,不仅抽象出了flesystem,super_block,inode,dentry,file等结构,而且还提供了像页高速缓存层的通用接口,当然,你可以自己选择是否使用或者自己定制使用方式.本文主要根据自己阅读Linux Kernel 3.19.3系统调用read相关的源码来追踪页高速缓存在整个流程中的痕迹,以常规文件的页高速缓存为例,了解页高速缓存的实现过程,不过于追究具体bio请求的底层细节.另外,在写操作的过程中,页高速缓存的处理流程有所不同(回写),涉

嵌入式 uboot以及kernel添加看门狗临时记录(个人记录未整理乱)

Uboot_Kernerl_Add_Watch_Dog:   U-Boot 2010.06 (Nov 01 2013 - 15:28:44) DRAM:  128 MiBCheck spi flash controller v350... FoundSpi(cs1) ID: 0xEF 0x40 0x18 0x00 0x00 0x00Spi(cs1): Block:64KB Chip:16MB Name:"W25Q128B"*** Warning - bad CRC, using def

宏的几种特殊用法

1. 屏蔽"未使用参数"警告 在OceanBase中ob_define.h中就使用了这种宏,将传入的数据强制转化为void型. #ifndef UNUSED #define UNUSED(v) ((void)(v)) #endif 这种宏主要是为了屏蔽"未使用参数"的警告,如下面这个函数用两个参数,但是一个都不用的话,某些编译器就会报出警告:认为p和mod_id都没有使用.所有我们使用UNUSE宏,这样两个参数都被使用了,但是实际上没有做任何有效的动作,以此来屏蔽&

并行编程中的内存回收Hazard Pointer

感谢同事[kevinlynx]在本站发表此文 接上篇使用RCU技术实现读写线程无锁,在没有GC机制的语言中,要实现Lock free的算法,就免不了要自己处理内存回收的问题. Hazard Pointer是另一种处理这个问题的算法,而且相比起来不但简单,功能也很强大.锁无关的数据结构与Hazard指针中讲得很好,Wikipedia Hazard pointer也描述得比较清楚,所以我这里就不讲那么细了. 一个简单的实现可以参考我的github haz_ptr.c   原理 基本原理无非也是读线程

深入理解计算机系统-之-内存寻址(四)--linux中分段机制的实现方式

linux中的分段机制 前面说了那么多关于分段机制的实现,其实,Linux以非常有限的方式使用分段.因为,Linux基本不使用分段的机制(注:并不是不使用,使用分段方式还是必须的,会简化程序的编写和运行方式),或者说,Linux中的分段机制只是为了兼容IA32的硬件而设计的.实际上,分段和分页在某种程度上显得有些多余,因为它们都可以划分进程的物理地址空间,分段可以给每一个进程分配不同的线性地址,而分页可以把同一线性地址,映射到不同的物理地址空间.与分段相比,linux更喜欢分页方式,因为: 当所