回文章列表
作者godfield.bbs@ptt.cc (咖啡貓) 看板: linux
標題Re: [問題] 編譯器如何配置記憶體
時間批踢踢實業 (2008/08/25 Mon 12:36:16)
gcc -S filename.c    # 先把程式原始碼轉成組合語言
vi filename.s        # 找出其中宣告 array 變數的 pseudo op

她的語法應該像以下這行
        .comm   SYMBOL,LENGTH,ALIGNMENT
把最後一欄 ALIGNMENT 改成你要的數值 ( 必需是 2 的N次方 )

gcc filename.s       # 出來就是你要的

這個方法可以使用在 x86 平台, 至於其他的 CPU 我沒有試過.

※ 引述《jeremy007 (linux藍海帝國)》之銘言:
: 大家好,
: 小弟有一個 C 語言的全域變數 char array[4096];
: 現在想由 compiler 將 array 的記憶體位置 "強迫配置" 在 1024-byte 的整數倍
: 也就是當我用 printf("%x\n", (unsigned) array);
: 我可以確認 array 的起始位置要能夠被 1024 所整除.
: 請問應如何下 compiler 的參數呢 ?
: 編譯環境為 gcc version 4.1.2 (Gentoo 4.1.2 p1.0.2)

--
How shall my heart be unsealed unless it is broken?
                                  By Kahlil Gibran

--
※ 發信站: 批踢踢實業坊(ptt.cc) 
◆ From: 140.112.8.136
文章選讀←離開[主題上]主題下(k)上篇(j)下篇S/a搜尋 G串列 TAB精華 ↑↓捲 Pg/Space翻