簡體   English   中英

為什么在函數中有“靜態”定義?

[英]Why have a 'static' definition in a function?

考慮http://c-faq.com/misc/hexio.html上的示例,為什么有額外的指針指向“靜態”字符緩沖區? 為什么我們不能擺脫retbuf

如果沒有static關鍵字,則緩沖區將在堆棧上分配-並在函數返回調用者時釋放。

使用static確保函數返回后緩沖區有效。

您需要一個指針,以便可以存儲更改的地址。 如果您只有retbuf ,則必須設計該函數以使用變化的索引變量。 例如:

int ind = sizeof(retbuf)-1;
retbuf[ind] = '\0';

等等

請注意,數組不是指針。 數組是內存的固定大小區域。 指針是地址。

暫無
暫無

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

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