Aracılığıyla paylaş


İşlev davranışına açıklama ekleme

İşlev parametrelerine ve dönüş değerlerine açıklama eklemeye ek olarak, işlevin tamamının özelliklerine açıklama ekleyebilirsiniz.

İşlev ek açıklamaları

Aşağıdaki ek açıklamalar işleve bir bütün olarak uygulanır ve nasıl davrandığını veya nelerin doğru olmasını beklediğini açıklar.

Ek Açıklama Tanım
_Called_from_function_class_(name) Tek başına kalmak için tasarlanmamıştır; bunun yerine, ek açıklama ile _When_ kullanılacak bir koşuldur. Daha fazla bilgi için bkz . Ek Açıklamanın Ne Zaman ve Nerede Uygulanacağını Belirtme.

name parametresi, bazı işlevlerin bildiriminde bir ek açıklama içinde de görünen rastgele bir _Function_class_ dizedir. _Called_from_function_class_şu anda analiz edilen işlev aynı değerine namesahip olan kullanılarak _Function_class_ ek açıklama eklendiğinde sıfır olmayan değerini döndürür; aksi takdirde sıfır döndürür.
_Check_return_ Bir dönüş değerine ek açıklama ekler ve çağıranın bunu incelemesi gerektiğini belirtir. İşlev geçersiz bir bağlamda çağrılırsa denetleyici bir hata bildirir.
_Function_class_(name) name parametresi, kullanıcı tarafından belirlenen rastgele bir dizedir. Diğer ad alanından ayrı bir ad alanında bulunur. bir işlev, işlev işaretçisi veya en yararlı olan işlev işaretçisi türü bir veya daha fazla işlev sınıfına ait olarak belirlenebilir.
_Raises_SEH_exception_ ve _On_failure_ koşullarına tabi olarak her zaman yapılandırılmış bir özel durum işleyicisi (SEH) özel durumu oluşturan bir işleve _When_ ek açıklama ekler. Daha fazla bilgi için bkz . Ek Açıklamanın Ne Zaman ve Nerede Uygulanacağını Belirtme.
_Maybe_raises_SEH_exception_ ve koşullarına tabi olarak isteğe bağlı olarak bir SEH özel durumu oluşturabilecek bir işleve _When__On_failure_ açıklama ekler.
_Must_inspect_result_ Dönüş değeri, parametreler ve genel değerler de dahil olmak üzere tüm çıkış değerlerine ek açıklama ekler. Ek açıklamalı nesnedeki değer daha sonra incelenmezse çözümleyici bir hata bildirir. "Denetleme", koşullu ifadede kullanılıp kullanılmadığını, bir çıkış parametresine mi yoksa genel bir parametreye mi atandığını veya parametre olarak geçirilip geçirilmediğini içerir. Dönüş değerleri _Must_inspect_result_ için anlamına gelir _Check_return_.
_Use_decl_annotations_ Üst bilgideki ek açıklama listesi yerine işlev tanımında (işlev gövdesi olarak da bilinir) kullanılabilir. Kullanıldığında _Use_decl_annotations_ , aynı işlevin kapsam içi üst bilgisinde görünen ek açıklamalar, ek açıklamanın bulunduğu _Use_decl_annotations_ tanımda da mevcutmuş gibi kullanılır.

Başarı/başarısızlık ek açıklamaları

İşlev başarısız olabilir ve başarısız olduğunda, işlevin sonuçları eksik olabilir veya işlev başarılı olduğunda sonuçlardan farklı olabilir. Aşağıdaki listede yer alan ek açıklamalar hata davranışını ifade etmenin yollarını sağlar. Bu ek açıklamaları kullanmak için bunların başarıyı belirlemesini sağlamalısınız; bu nedenle, bir _Success_ ek açıklama gereklidir. ve HRESULT içinde zaten yerleşik bir _Success_ ek açıklama olduğuna NTSTATUS dikkat edin; ancak veya HRESULTüzerinde NTSTATUS kendi _Success_ ek açıklamanızı belirtirseniz, yerleşik ek açıklamayı geçersiz kılar.

Ek Açıklama Tanım
_Always_(anno_list) anno_list _On_failure_(anno_list)ile eşdeğerdir; diğer bir ifadeyle, içindeki ek açıklamalar anno_list işlevin başarılı olup olmadığını uygular.
_On_failure_(anno_list) Yalnızca _Success_ işleve açıkça veya örtük _Return_type_success_ olarak bir tür tanımında açıklama eklemek için kullanıldığında kullanılır. _On_failure_ Ek açıklama bir işlev parametresinde veya dönüş değerinde mevcut olduğunda, içindeki her ek açıklama anno_list (anno) olarak kodlanmış gibi _When_(!expr, anno)davranır; burada expr gerekli _Success_ ek açıklamanın parametresidir. Bu, tüm son koşullara zımni uygulamasının _Success_ için _On_failure_geçerli olmadığı anlamına gelir.
_Return_type_success_(expr) Bir tür tanımına uygulanabilir. Bu türü döndüren ve açıkça sahip _Success_ olmayan tüm işlevlerin sahip olduğu _Success_(expr)gibi ek açıklama eklendiğini gösterir. _Return_type_success_ bir işlevde veya işlev işaretçisi tür tanımında kullanılamaz.
_Success_(expr) expr bir rvalue veren bir ifadedir. _Success_ Ek açıklama bir işlev bildiriminde veya tanımında mevcut olduğunda, işlevdeki ve son koşuldaki her ek açıklama (anno) olarak kodlanmış gibi _When_(expr, anno)davranır. Ek _Success_ açıklama yalnızca bir işlevde kullanılabilir, parametrelerinde veya dönüş türünde kullanılamaz. bir işlevde en fazla bir _Success_ ek açıklama olabilir ve herhangi bir _When_, _At_veya _Group_içinde olamaz. Daha fazla bilgi için bkz . Ek Açıklamanın Ne Zaman ve Nerede Uygulanacağını Belirtme.

Ayrıca bkz.