久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

ARMCC對匿名結構和聯合的支持

作者:佚名   來源:本站原創   點擊數:  更新時間:2014年03月14日   【字體:

一 對匿名結構和聯合的支持

 

ARMCC
4.6.1. #pragma anon_unions, #pragma no_anon_unions
這些編譯指示啟用和禁用對匿名結構和聯合的支持。

 

二 對齊


可以在需要進行取消對齊的結構前用
#pargma pack(1)
以該結構后用
#pargma pack()
即可。

可以同時包括多個結構,也可以整個文件都包涵進去。
gcc會自動尋找該定義,并取消默認的對齊方式。這種方法還是比較好的,比在gcc參數中加選項要好,可以不影響系統的庫方式 

 

如下:
struct
{
char a;
int b;
}aa;

用sizeof(aa)值為8,而不是5(32位環境下)。
這是不是由于GCC的對齊機制引起的?如何disable掉

1.
struct irq_routing_options {
u16 size;
struct irq_info *table;
u16 segment;
} __attribute__((packed));

2.
#pragma pack(1)
struct ... {
...
}...;
#pragma pack()
   

在MS-VC中的規則,
pack(1) 表示一字節對齊。

bx_bird提到的是在Gcc中的規則,也表示單字節對齊。

例如使用
struct my_s
{
char a;
int b;
}__attribute__((packed));
struct my_s aa;
就可以使aa變量只占用5個字節而不是8個字節。

uint8_t
__attribute((aligned (4)))

 

三 宏定義鏈接符

 

#define   A(a)   TEST_##a

#define A(b)  == TEST_b
#define A(1)  == TEST_1
 

關閉窗口

相關文章

主站蜘蛛池模板: 天堂一区二区三区四区 | 天天综合操| 国产精品99久久久久久大便 | 精品国产1区2区3区 在线国产视频 | 精品久久久久国产免费第一页 | 日韩视频一区二区 | 亚洲一区二区三区在线视频 | 嫩草一区二区三区 | 亚洲黄色网址视频 | 色www精品视频在线观看 | 国产精品夜夜夜一区二区三区尤 | 龙珠z在线观看 | 国产精品成人一区二区三区 | 亚洲精品一区中文字幕 | 伊色综合久久之综合久久 | 久久一区二区精品 | 99久久精品国产麻豆演员表 | 欧美久久一区二区 | 久青草影院 | 欧美一区二区在线播放 | eeuss国产一区二区三区四区 | 精品亚洲一区二区三区四区五区 | 欧美国产激情二区三区 | 2022精品国偷自产免费观看 | 午夜国产羞羞视频免费网站 | 国产日韩精品一区 | 久在线视频播放免费视频 | 国产成人精品999在线观看 | 欧美日韩国产中文 | yiren22 亚洲综合 | 99热精品6| 久久久久国产精品一区二区 | 亚洲高清免费观看 | 国产一区在线看 | 精品一区二区电影 | 国产亚洲欧美在线视频 | 国产日韩精品在线 | 色狠狠桃花综合 | 成人精品免费 | 羞羞视频网 | 91资源在线|