新聞中心
這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
c語言中pragma怎么用
C語言中的pragma是一個(gè)預(yù)處理指令,它允許程序員在編譯時(shí)向編譯器發(fā)送特定的命令。pragma函數(shù)主要用于控制編譯器的優(yōu)化級別、生成特定的代碼或者設(shè)置編譯選項(xiàng)等,下面我們詳細(xì)介紹一下pragma的使用方法。

創(chuàng)新互聯(lián)公司從2013年創(chuàng)立,先為上杭等服務(wù)建站,上杭等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為上杭企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
控制編譯器優(yōu)化級別
1、使用pragma GCC optimize:
includeint main() { int a = 10; int b = 20; int c = a + b; printf("c = %d ", c); return 0; }
pragma GCC optimize("O3")
2、使用pragma clang optimize(針對Clang編譯器):
includeint main() { int a = 10; int b = 20; int c = a + b; printf("c = %d ", c); return 0; }
pragma clang optimize("O3")
生成特定代碼
1、使用pragma once:
includepragma once int a = 10; int b = 20; int c = a + b; printf("c = %d ", c);
2、使用pragma pack(n):用于設(shè)置結(jié)構(gòu)體或類成員變量的內(nèi)存對齊方式,設(shè)置為4字節(jié)對齊:
struct MyStruct {
int a;
char b;
};
pragma pack(push, 4) struct MyStruct my_struct; pragma pack(pop)
設(shè)置編譯選項(xiàng)
1、使用pragma message():向編譯器輸出一條信息,
includepragma message("This is a test message from pragma.")
2、使用pragma comment(linker, "option"):設(shè)置鏈接器選項(xiàng),定義一個(gè)名為MYLIB_EXPORTS的宏:
define MYLIB_EXPORTS __declspec(dllexport) // 或者 __attribute__((visibility("default"))) 對于靜態(tài)庫來說是等價(jià)的,對于動態(tài)庫來說,需要在鏈接時(shí)加上 -Wl,--whole-archive libmylib.a -Wl,--no-whole-archive,然后再將該庫添加到項(xiàng)目中,這樣就可以在其他項(xiàng)目中通過 extern "C" __declspec(dllimport) void my_function(); 來調(diào)用這個(gè)函數(shù)了,如果要導(dǎo)出整個(gè)頭文件,可以使用 __declspec(dllexport) __declspec(selectany). 這將使得在鏈接時(shí)選擇任意一個(gè)符號進(jìn)行導(dǎo)出,這通常用于多平臺支持或者提供一個(gè)默認(rèn)實(shí)現(xiàn)的情況。
分享名稱:c語言中pragma怎么用
文章起源:http://m.fisionsoft.com.cn/article/cdhisho.html


咨詢
建站咨詢
