簡體   English   中英

將數組分配給函數宏

[英]Assigning an array to a function macro

我最近遇到了以下代碼,其中宏的定義如下

unsigned char cbuf[10];
#define pbuf() (&cbuf[0])

誰能解釋在#define (宏定義)行中正在做什么?

當代碼中包含pbuf() ,預處理器(將在實際編譯之前運行)將其替換為(&cbuf[0]) ,基本上更改了饋給實際編譯器的源代碼。

因此,宏的目的是給出cbuf變量的第一個元素的地址(該變量在當前范圍內是什么,因為預處理器實際上只是在不了解上下文的情況下進行“字符串替換”)。 這有點多余,因為數組的名稱也是它的第一個元素的地址...

換句話說,無論在哪里使用pbuf() ,都只需直接編寫cbuf即可。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM