onayla (CRT)

Bir ifade ve sonucu olduğunda değerlendirir false, bir tanılama iletisi yazdırır ve program iptal eder.

void assert( 
   int expression 
);

Parametreler

  • expression
    Sıfır olmayan veya 0 olarak değerlendirir (işaretçiler dahil) ifade.

Notlar

assert Makro uygulayarak program geliştirme sırasında mantık hataları tanımlamak için kullanılan genel olarak expression bağımsız olarak değerlendirilmesi için false sadece zaman program hatalı çalışıyor.Hata ayıklama işlemi tamamlandıktan sonra onay işlemi denetleme tanımlayıcısını tanımlayarak, kaynak dosyayı değiştirmeden kapatılabilir NDEBUG.NDEBUGile tanımlanan bir /D komut satırı seçeneği ile veya bir #define yönergesi.Varsa NDEBUG ile tanımlanan #define, önce izin yönergesi görünmesi gerekir.H dahil edilir.

assertBaskı bir tanılama iletisi ne zaman expression veren false (0) ve aramalar İptal program yürütme sona erdirmek için.Bir eylem expression olan true (sıfır dışında).Tanılama iletisi başarısız ifade, burada onaylama işlemi başarısız kaynak dosyası ve satır numarası adını içerir.

Tanılama iletisini geniş karakter yazdırılır.Bu nedenle, olsa bile Unicode karakterleri ifadede beklendiği gibi çalışır.

Tanılama iletisinin hedefini yordam olarak adlandırılan uygulama türüne bağlıdır.Konsol uygulamaları üzerinden ileti her zaman almak stderr.Windows tabanlı bir uygulama içinde assert Windows çağırır MessageBox ile birlikte iletiyi görüntülemek için bir ileti kutusu oluşturmak için işlev bir Tamam düğmesi.Kullanıcı tıkladığında Tamam, program hemen iptal eder.

Uygulama çalışma zamanı kitaplıkları hata ayıklama sürümü ile bağlandığında assert üç düğmesi bir mesaj kutusu oluşturur: İptal, yeniden, ve Yoksay.Kullanıcı İptal, program hemen iptal eder.Kullanıcı yeniden, hata ayıklayıcı denir ve just-in-time (JIT) debugging etkinleştirilirse, kullanıcının program hata ayıklaması yapabilirsiniz.Kullanıcı Yoksay, assert ile normal yürütme devam eder: ileti kutusu oluşturma Tamam düğmesi.O tıklatarak Not Yoksay ne zaman bir hata koşulu var tanımsız davranışlara neden olabilir.

CRT hata ayıklama hakkında daha fazla bilgi için bkz: CRT hata ayıklama teknikleri.

assert Yordam hem yayın hem de hata ayıklama sürümleri C çalışma zamanı kitaplıkları içinde kullanılabilir.Diğer iki onaylama işlemi makrolar, _ASSERT ve _ASSERTE, de kullanılabilir durumdadır, ancak yalnızca ne zaman kendilerine iletilen deyimleri değerlendirmek _DEBUG bayrağı tanımlanmış.

Gereksinimler

Yordam

Gerekli başlık

assert

<Assert.h>

Örnek

Bu programda analyze_string işlevini kullanan assert ilgili çeşitli koşullarda test etmek için işlev dize ve uzunluğu.Program durumlardan herhangi biri başarısız olursa, başarısızlığın nedenini belirten bir ileti yazdırır.

// crt_assert.c
// compile with: /c
#include <stdio.h>
#include <assert.h>
#include <string.h>

void analyze_string( char *string );   // Prototype

int main( void )
{
   char  test1[] = "abc", *test2 = NULL, test3[] = "";

   printf ( "Analyzing string '%s'\n", test1 ); fflush( stdout );
   analyze_string( test1 );
   printf ( "Analyzing string '%s'\n", test2 ); fflush( stdout );
   analyze_string( test2 );
   printf ( "Analyzing string '%s'\n", test3 ); fflush( stdout );
   analyze_string( test3 );
}

// Tests a string to see if it is NULL, 
// empty, or longer than 0 characters.
void analyze_string( char * string )
{
   assert( string != NULL );        // Cannot be NULL
   assert( *string != '\0' );       // Cannot be empty
   assert( strlen( string ) > 2 );  // Length must exceed 2
}
  

.NET Framework Eşdeğeri

System::Diagnostics::Debug:: onaylama işlemi

Ayrıca bkz.

Başvuru

Hata İşleme (CRT)

Süreç ve Ortam Denetimi

durdur

tetikle

sinyal

_ASSERT, _ASSERTE Makroları

_DEBUG