C中"#pragma section <XYZ>"
有什麼用?C中「#pragma section <XYZ>」的用法是什麼?
我所遇到的C代碼文件,其中使用了以下類型: -
#define XYZ "ITEM 26.G03"
#pragma section <XYZ>
其中XYZ是:#define XYZ "ITEM 26.G03"
我需要使用"#pragma section"
C中"#pragma section <XYZ>"
有什麼用?C中「#pragma section <XYZ>」的用法是什麼?
我所遇到的C代碼文件,其中使用了以下類型: -
#define XYZ "ITEM 26.G03"
#pragma section <XYZ>
其中XYZ是:#define XYZ "ITEM 26.G03"
我需要使用"#pragma section"
節帶來了一些交代.obj文件中的一節。
有關更多詳細信息,請參閱MSDN。
代碼和數據在目標文件的各個部分中生成,由鏈接器組合成一個可執行文件,最終位於目標內存的特定位置。默認部分是預定義的並具有某些屬性。 部分編譯指示可用於更改默認屬性,定義新節,並控制將代碼和變量分配給特定節,並與鏈接器命令文件一起控制其位置。
#pragma section
定義了一個section類,並且可選地定義了類中的一個或兩個部分。 section類控制放置在類實例中的變量和代碼的尋址和可訪問性。
#pragma
指令是特定於實現的指令,它是向編譯器提供附加信息的標準方式。這個指令的格式如下:
#pragma name
如果預處理器能夠識別指定的「名」,它執行他們的立場的任何行動,或傳遞到編譯器的信息。如果c程序不支持「名稱」,則忽略。
例如gcc編譯器接受列出的編譯指示列表here。
對於#pragma section
,GCC的文件說:
部分( 「部分-name」)通常,編譯器將 生成的文本部分中的代碼。但是,有時您需要額外的 部分,或者您需要某些特殊功能才能出現在 特殊部分。 section屬性指定函數 位於特定部分。例如,聲明:
extern void foobar (void) __attribute__ ((section ("bar")));
將函數
foobar
放在條形截面中。某些文件格式不支持任意部分,因此 部分屬性在所有平臺上都不可用。如果您需要將模塊的全部內容映射到特定的部分,請考慮使用鏈接器的設施來代替 。
更多關於那here。
http://stackoverflow.com/questions/9716637/what-is-the-use-of-pragma-code-section-and-data-section – codejammer 2012-08-16 06:14:49
你可以接受答案,如果它可以幫助你。未來的遊客也將從中受益。 – Jaguar 2012-10-05 05:47:34