簡體   English   中英

__in,__ out,__ in_opt的含義

[英]Meaning of __in , __out, __in_opt

在函數參數中的變量之前使用這些關鍵字的含義是什么?

  • __in
  • __out
  • __in_opt

這些是來自微軟SAL Annotations的一些較舊的裝飾宏(現在較新的裝飾宏是按照不同的外殼,從首都開始)。 這些對編譯沒有實際影響(在VS 2010下它們甚至沒有擴展),它們用於內聯API文檔。

  1. __in :此參數是函數的輸入(只讀,調用者已初始化)。
  2. __out :此參數包含函數返回時的輸出(只寫,調用者初始化)。
  3. __in_opt :由_in_opt形成的復合注釋, _opt表示該參數是可選的,可以設置為默認值(通常為NULL )。

你可以在這里得到了充分的解釋舊的裝飾品在這里

正如Nercolis所回答的,這些是SAL注釋屬性。 但是,這些不僅僅是內部的,也不僅僅是API文檔 真正的目的是進行代碼分析 使用/ analyze編譯器選項(項目屬性,代碼分析 - >常規)構建項目時,這些選項在查找編碼問題中起着重要作用。

例如,如果特定指針參數顯示__in則不得傳遞空指針。 該函數不會檢查null並可能導致SEH。 __in_opt參數可以為null。 當編譯器發現某些問題時,它會將其報告為警告。 看到這篇文章

暫無
暫無

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

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