BG MVC Model View Controller eğitim serisi yayında...

Ana sayfa > Programlama > C Programlama > C standart kütüphanesi > <assert.h> > assert

assert() fonksiyonu

Bildirim

void assert(int expression);

Açıklama

Aslında bir makro olan assert() fonksiyonu program içinde teşhisler elde etmek için kullanılır. Elde edilen teşhis bilgileri standart hata dosyasına yazılabilir.

Standart kütüphane tarafından tanımlanmayan NDEBUG makrosu assert() fonksiyonunun durumunu belirler. Eğer NDEBUG, assert.h dosyasının dahil edildiği kaynak koddaki noktada bir makro adı olarak tanımlanırsa, assert hiçbir şey yapmaz. Farklı bir ifade ile, assert() fonksiyonu sadece NDEBUG makrosunun tanımlanmadığı durumda çalışır.

Parametreler

expression: Bu bir değişken veya herhangi bir C ifadesi olabilir. Eğer ifade doğru sonuç verirse, assert() fonksiyonu hiçbir şey yapmaz. İfade yanlış sonuç verirse, assert() fonksiyonu stderr üzerinde bir hata mesajı görüntüler ve programın çalışmasını durdurur.

Dönüş değeri

Herhangi bir değer geri döndürmemektedir.

Örnek


#include <stdio.h>
#include <assert.h>

int fonk (int id1, int id2)
{
  return id1 * id2;
}

int main(void) {
  int id1=21, id2=0;

  assert((id1!=0) && (id2!=0)); /* Her iki değişken değeri 0'dan farklı olmalıdır. */

  printf("Sayıların çarpımı: %d", fonk(id1, id2));

  return 0;
}

Yukarıdaki örnekte, program aşağıdaki satırı ekrana yazarak sona erer:

Assertion failed

Yukarıdaki programda, iki adet int değişken oluşturularak ilk değişkene 21 ikinci değişkene ise 0 değeri atanır. Ancak, ikinci değişken değeri 0 olduğundan assert() fonksiyonu içindeki ifade hatalı sonuç verir ve program fonksiyon çağrısı yapılan printf() satırı devreye girmeden sona erer. Programı normal olarak çalıştırmak ve iki değişken çarpımının ekrana yazılmasını sağlamak için her iki değişken değerinin 0'dan farklı olması gerekir.