空的宏定義作用及常見用法


我們學習宏定義的第一個概念是,宏定義作為替換作用。

例如: 

#define SIZE 32    // 接下來代碼使用SIZE就相當於32

宏定義是編譯器在編譯時,將程序中所有SIZE替換成32,我這里就不詳細將宏定義的知識,

下面講講在項目中,看到空的宏定義是什么情況以及它作用和用法。

 

先看看項目中的代碼, 如下:

#ifndef SQLITE_API
# define SQLITE_API
#endif

這個宏定義什么都沒有,作用是什么呢?

作用是標志

#ifndef __TYPE_DEFINE__
# define __TYPE_DEFINE__
   #include <stdio.h> typedef unsigned
int uint32 ; int func(int x, int y); #endif

再看看上面這段代碼,這時防止頭文件重復的用法。空宏定義跟這個其實一樣的,僅僅只是定義的內容是空的,

但是,我們可以判斷這個宏定義是否曾經被定義過。

使用方法:

#ifdef __TYPE_DEFINE__
/* 代碼段1 */
#else
/* 代碼段2 */
#endif

在make menuconfig 啟動編譯的時候,里面其實很多代碼是這樣預留出來的,我們通過啟動config文件的某個選項: [*] DEBUG 

背后其實一般這樣實現的。

 

還有很多用處,此文待續~~

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM