C/C++語(yǔ)言宏定義使用實(shí)例詳解
C/C++語(yǔ)言宏定義使用實(shí)例詳解
1. #ifndef 防止頭文件重定義
在一個(gè)大的軟件工程里面,可能會(huì)有多個(gè)文件同時(shí)包含一個(gè)頭文件,當(dāng)這些文件編譯鏈接成
一個(gè)可執(zhí)行文件時(shí),就會(huì)出現(xiàn)大量“重定義”的錯(cuò)誤。在頭文件中實(shí)用#ifndef #define #endif能避免頭文件的重定義。
方法:例如要編寫(xiě)頭文件test.h
在頭文件開(kāi)頭寫(xiě)上兩行:
#ifndef TEST_H #define TEST_H //一般是文件名的大寫(xiě)
頭文件結(jié)尾寫(xiě)上一行:
#endif
這樣一個(gè)工程文件里同時(shí)包含兩個(gè)test.h時(shí),就不會(huì)出現(xiàn)重定義的錯(cuò)誤了。
注:Visual C++中有一種簡(jiǎn)化的方法,那就是使用 #pragma once
2. 編寫(xiě)跨平臺(tái)的C/C++程序
2.1 操作系統(tǒng)相關(guān)宏定義
Windows: WIN32 Linux: linux Solaris: __sun
2.2 編譯器相關(guān)宏定義
VC: _MSC_VER GCC/G++: __GNUC__ SunCC: __SUNPRO_C 和 __SUNPRO_CC
3. 完整的代碼實(shí)例
//Avoid redefine anything in this header #ifndef UUID_H #define UUID_H // Check platform is Windows or Linux #ifdef _MSC_VER #ifndef DLL_API #define DLL_API __declspec(dllexport) #endif #else #ifndef DLL_API #define DLL_API #endif #endif #include <string> #include <random> #include <time.h> #include <stdlib.h> using namespace std; class DLL_API UUID { public: static string getUuidString(); }; #endif
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
上一篇:C++子類(lèi)父類(lèi)成員函數(shù)的覆蓋和隱藏實(shí)例詳解
欄 目:C語(yǔ)言
下一篇:C++11中std::declval的實(shí)現(xiàn)機(jī)制淺析
本文標(biāo)題:C/C++語(yǔ)言宏定義使用實(shí)例詳解
本文地址:http://mengdiqiu.com.cn/a1/Cyuyan/1405.html
您可能感興趣的文章
- 04-02c語(yǔ)言函數(shù)調(diào)用后清空內(nèi)存 c語(yǔ)言調(diào)用函數(shù)刪除字符
- 04-02c語(yǔ)言的正則匹配函數(shù) c語(yǔ)言正則表達(dá)式函數(shù)庫(kù)
- 04-02func函數(shù)+在C語(yǔ)言 func函數(shù)在c語(yǔ)言中
- 04-02c語(yǔ)言中對(duì)數(shù)函數(shù)的表達(dá)式 c語(yǔ)言中對(duì)數(shù)怎么表達(dá)
- 04-02c語(yǔ)言用函數(shù)寫(xiě)分段 用c語(yǔ)言表示分段函數(shù)
- 04-02c語(yǔ)言編寫(xiě)函數(shù)冒泡排序 c語(yǔ)言冒泡排序法函數(shù)
- 04-02c語(yǔ)言沒(méi)有round函數(shù) round c語(yǔ)言
- 04-02c語(yǔ)言分段函數(shù)怎么求 用c語(yǔ)言求分段函數(shù)
- 04-02C語(yǔ)言中怎么打出三角函數(shù) c語(yǔ)言中怎么打出三角函數(shù)的值
- 04-02c語(yǔ)言調(diào)用函數(shù)求fibo C語(yǔ)言調(diào)用函數(shù)求階乘


閱讀排行
- 1C語(yǔ)言 while語(yǔ)句的用法詳解
- 2java 實(shí)現(xiàn)簡(jiǎn)單圣誕樹(shù)的示例代碼(圣誕
- 3利用C語(yǔ)言實(shí)現(xiàn)“百馬百擔(dān)”問(wèn)題方法
- 4C語(yǔ)言中計(jì)算正弦的相關(guān)函數(shù)總結(jié)
- 5c語(yǔ)言計(jì)算三角形面積代碼
- 6什么是 WSH(腳本宿主)的詳細(xì)解釋
- 7C++ 中隨機(jī)函數(shù)random函數(shù)的使用方法
- 8正則表達(dá)式匹配各種特殊字符
- 9C語(yǔ)言十進(jìn)制轉(zhuǎn)二進(jìn)制代碼實(shí)例
- 10C語(yǔ)言查找數(shù)組里數(shù)字重復(fù)次數(shù)的方法
本欄相關(guān)
- 04-02c語(yǔ)言函數(shù)調(diào)用后清空內(nèi)存 c語(yǔ)言調(diào)用
- 04-02func函數(shù)+在C語(yǔ)言 func函數(shù)在c語(yǔ)言中
- 04-02c語(yǔ)言的正則匹配函數(shù) c語(yǔ)言正則表達(dá)
- 04-02c語(yǔ)言用函數(shù)寫(xiě)分段 用c語(yǔ)言表示分段
- 04-02c語(yǔ)言中對(duì)數(shù)函數(shù)的表達(dá)式 c語(yǔ)言中對(duì)
- 04-02c語(yǔ)言編寫(xiě)函數(shù)冒泡排序 c語(yǔ)言冒泡排
- 04-02c語(yǔ)言沒(méi)有round函數(shù) round c語(yǔ)言
- 04-02c語(yǔ)言分段函數(shù)怎么求 用c語(yǔ)言求分段
- 04-02C語(yǔ)言中怎么打出三角函數(shù) c語(yǔ)言中怎
- 04-02c語(yǔ)言調(diào)用函數(shù)求fibo C語(yǔ)言調(diào)用函數(shù)求
隨機(jī)閱讀
- 08-05dedecms(織夢(mèng))副欄目數(shù)量限制代碼修改
- 01-11Mac OSX 打開(kāi)原生自帶讀寫(xiě)NTFS功能(圖文
- 01-10delphi制作wav文件的方法
- 01-10使用C語(yǔ)言求解撲克牌的順子及n個(gè)骰子
- 08-05DEDE織夢(mèng)data目錄下的sessions文件夾有什
- 04-02jquery與jsp,用jquery
- 01-10SublimeText編譯C開(kāi)發(fā)環(huán)境設(shè)置
- 01-11ajax實(shí)現(xiàn)頁(yè)面的局部加載
- 08-05織夢(mèng)dedecms什么時(shí)候用欄目交叉功能?
- 01-10C#中split用法實(shí)例總結(jié)