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能避免頭文件的重定義。
方法:例如要編寫頭文件test.h
在頭文件開頭寫上兩行:
#ifndef TEST_H #define TEST_H //一般是文件名的大寫
頭文件結(jié)尾寫上一行:
#endif
這樣一個(gè)工程文件里同時(shí)包含兩個(gè)test.h時(shí),就不會(huì)出現(xiàn)重定義的錯(cuò)誤了。
注:Visual C++中有一種簡(jiǎn)化的方法,那就是使用 #pragma once
2. 編寫跨平臺(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ì)本站的支持!
相關(guān)文章
C++實(shí)現(xiàn)LeetCode(26.有序數(shù)組中去除重復(fù)項(xiàng))
這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(26.有序數(shù)組中去除重復(fù)項(xiàng)),本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07C++標(biāo)準(zhǔn)C函數(shù)在各平臺(tái)編譯結(jié)果都相同
今天小編就為大家分享一篇關(guān)于C++標(biāo)準(zhǔn)C函數(shù)在各平臺(tái)編譯結(jié)果都相同,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2018-12-12C語(yǔ)言通過深度優(yōu)先搜索來解電梯問題和N皇后問題的示例
深度優(yōu)先搜索即是對(duì)一個(gè)新發(fā)現(xiàn)的節(jié)點(diǎn)上如果還關(guān)聯(lián)未探測(cè)到的邊,就沿此邊探測(cè)下去,直到發(fā)現(xiàn)從原點(diǎn)可達(dá)的所有點(diǎn)為止,這里我們就來展示C語(yǔ)言通過深度優(yōu)先搜索來解電梯問題和N皇后問題的示例2016-06-06C++利用鏈表寫一個(gè)簡(jiǎn)單的棧實(shí)例詳解
這篇文章主要介紹了C++利用鏈表寫一個(gè)簡(jiǎn)單的棧實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下2017-05-05C語(yǔ)言用封裝方法實(shí)現(xiàn)飛機(jī)大戰(zhàn)游戲
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言用封裝方法實(shí)現(xiàn)飛機(jī)大戰(zhàn)游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-05-05C語(yǔ)言編程動(dòng)態(tài)內(nèi)存分配常見錯(cuò)誤全面分析
這篇文章主要介紹了C語(yǔ)言編程中動(dòng)態(tài)內(nèi)存分配的常見錯(cuò)誤全面分析講解,同樣遇到過C語(yǔ)言動(dòng)態(tài)內(nèi)存分配各種問題的同學(xué)可以借鑒參考下,希望能夠有所幫助2021-10-10