新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > arm c中字節(jié)對(duì)齊

        arm c中字節(jié)對(duì)齊

        作者: 時(shí)間:2016-11-09 來源:網(wǎng)絡(luò) 收藏

        __align

        __align關(guān)鍵字指示編譯器在n字節(jié)邊界上對(duì)齊變量。

        本文引用地址:http://www.104case.com/article/201611/317651.htm

        __align是一個(gè)存儲(chǔ)類修飾符。它不影響函數(shù)的類型。

        語法

        __align(n)

        其中:

        n

        是對(duì)齊邊界。

        對(duì)于局部變量,n值可為 1、2、4 或 8。

        對(duì)于全局變量,n可以具有最大為 2 的 0x80000000 次冪的任何值。

        __align關(guān)鍵字緊靠變量名稱前面放置。

        用法

        如果聲明的變量的常規(guī)對(duì)齊邊界小于n,__align(n)是非常有用的。八字節(jié)對(duì)齊方式可以顯著提高 VFP 指令的性能。

        可以將__align與extern和static一起使用。

        限制

        由于__align是存儲(chǔ)類修飾符,因此不能將其用于:

        • 類型,包括typedef和結(jié)構(gòu)定義

        • 函數(shù)參數(shù)。

        只能進(jìn)行過對(duì)齊。也就是說,可以將兩個(gè)字節(jié)的對(duì)象按 4 個(gè)字節(jié)對(duì)齊,而不能將 4 個(gè)字節(jié)的對(duì)象按兩個(gè)字節(jié)對(duì)齊。

        示例

        __align(8) char buffer[128]; // buffer starts on eight-byte boundary
        void foo(void){...__align(16) int i; // this alignment value is not permitted for // a local variable...}__align(16) int i; // permitted as a global variable.參考:ARM手冊



        關(guān)鍵詞: armc字節(jié)對(duì)

        評(píng)論


        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 皋兰县| 宝丰县| 苍南县| 闽侯县| 临朐县| 张家界市| 长海县| 陕西省| 大田县| 正宁县| 岳阳县| 昂仁县| 上栗县| 常宁市| 普定县| 萨嘎县| 东方市| 兴海县| 册亨县| 元谋县| 梁河县| 古浪县| 龙里县| 绿春县| 蒙阴县| 罗源县| 盐山县| 瑞丽市| 金华市| 南昌市| 扎兰屯市| 乌鲁木齐市| 阳城县| 丹棱县| 土默特左旗| 化隆| 甘南县| 革吉县| 蚌埠市| 丘北县| 旅游|