16 Kasım 2018, 07:45:29

Haberler:

Picproje Facebook Sayfası:  https://bit.ly/2pUitll


assert_param(); nedir?

Başlatan Analog, 02 Eylül 2018, 03:16:18

Analog

Merhaba

Kodlarımızı yazarken kullandığımız fonksiyonların .c dosyasında içine baktığımız zaman assert_param(); ı görüyoruz. Mesela I2C_GenerateSTART(); fonk. bakalım

Kod Seç
void I2C_GenerateSTART(I2C_TypeDefI2CxFunctionalState NewState)
{
  
/* Check the parameters */
  
assert_param(IS_I2C_ALL_PERIPH(I2Cx));
  
assert_param(IS_FUNCTIONAL_STATE(NewState));
  if (
NewState != DISABLE)
  {
    
/* Generate a START condition */
    
I2Cx->CR1 |= I2C_CR1_START;
  }
  else
  {
    
/* Disable the START condition generation */
    
I2Cx->CR1 &= (uint16_t)~((uint16_t)I2C_CR1_START);
  }
}

burada assert_param(); olayı neden var daha doğrusu ne işe yaradığını bilmiyorum. Açıklayan olursa sevinirim

sımışka

conf.h kütüphanesi içerisinde tanımlanan bir makro aslında.(#define USE_FULL_ASSERT 1)

Argüman olarak aldığı ifadenin doğruluk durumuna bağlı olarak hatalı olup olmadığı mesaj almayı sağlayan fonksiyondur.

Argümanın false değer alması durumunda hata mesajı yazdırır ve abort fonksiyonu ile programı sonlandırmayı sağlamaktadır.

OptimusPrime

C deki karsiligi assert(). Bir cesit hata ayiklama mekanizmasi.

yldzelektronik

Argümanın false değer alması durumunda mı, true değer alması durumunda mı tetiklenir?
Kişinin başına gelen hayır Allah'tandır. Kişinin başına gelen şer nefsindendir. Nefislerimizle kendimize zulüm ediyoruz.

OptimusPrime

Standart C gore false olmasi lazim.