Bu Önişlemci tanımlarından bazıları WinMain işlevi ve diğer pencere kitaplığı işlevlerinde bulunur. Amaçları nedir? Nasıl çalışırlar? bunları uygulamalarınıza veya işlev çağrılarınıza yazmak iyi bir uygulama mıdır?__in __out __in_opt __allowed() işlevinin amacı nedir, nasıl çalışırlar? Kendi kodumda benzer yapıları kullanmalı mıyım?
#define __in
#define __out
#define __in_opt
onlar Preprocessor geçişte şey ile yer değiştirirler Anlamı:
Benim ilk araştırma onlar sadece equlivalent yerleştik öneriyor. Herhangi bir işlevsellik olmadan sadece bir doküman metodu mu?
Öyleyse, bu gibi sıraya kod belgeleyen avantaj görebilirsiniz. Doxygen gibi bir şeyle parametre adlarını iki kere yazmanız gerekir. Yani bu teoride
Ben__allowed()
çalışmak gerekiyordu nasıl hiçbir teori var ... çoğaltılması azaltmaya yardımcı ve tutarlılığı korumak olabilir.
Araçlar güvenilir olmayan ve yanlış bilgilere bağlı olduğunda sorun değil mi? –
Takımlar yanlış bilgilere bağlı olduğunda her zaman bir sorun olur. SAL ek açıklamaları farklı değildir. Tabii ki biraz riskli, ama bu C'nin deklarasyon/tanım mimarisine özgü olan - her zaman onların eşleştiğinden emin olmalısınız. – MSalters
@Cheers SAL ek açıklamaları hem arayan hem de arayan için Kod Analizi tarafından kontrol edilir. Ek açıklamalar yalnızca yazarın niyetini ifade etmekle kalmaz, aynı zamanda doğrulanır (mümkün olduğunda). Bu nedenle ne güvenilir ne de yanlıştırlar. Void foo (_In_opt_ int * p) düşünün {* p = 42; } '.'P' parametresi isteğe bağlı olarak işaretlenir ancak uygulama her zaman geçerli olacağını varsayar. Kod Analizi sorunu tespit edecek ve teşhis bilgileri sağlayacaktır. – IInspectable