簡體   English   中英

塊內的靜態函數聲明

[英]static function declaration inside a block

一個教程

您不能將塊中的函數聲明為靜態。

是什么原因?它如何影響功能?

應用於函數時static意味着該函數具有內部鏈接 即它只能在此文件中訪問。 換句話說,它具有文件范圍 無論您是在另一個函數內部還是在所有函數之外聲明函數,此鏈接都適用。

現在,如果將static關鍵字應用於另一個塊/函數內的函數聲明 ,從語義上講 ,您試圖將函數的范圍限制為該特定的塊/函數,這違反了聲明static函數的語言規則,不論其聲明地點如何,均應有檔案范圍。

因此,標准可能會禁止這樣的聲明。

PS :最新C11標准6.2.3中的腳注30

只有當函數聲明位於文件范圍時,它才能包含存儲類說明符static ;

暫無
暫無

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

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