Mantıksal ifade anlaşılamadı

Başlatan power20, 09 Şubat 2020, 00:22:55

power20


unsigned char       data         ;
unsigned char bit;

 

data |= 0x80 * !!bit;


!!bit yine bit'in kendisi olmuyor mu? iki kere değil alınmış?  !! farklı bir anlamı mı var?



power20

Double not diyor.
Bu ne amaçla kullanılır. İki kere değil almak yine kendisi olmuyor mu?

HAKKITANIR

#3
Evet kendisi oluyor.
Hiç kullanmadım ama benim C derleyici de iş görüyor.
data |= 0x80 * !!bit;
ile
data = data | 0X80 * !!bit;
kısaltılmış oluyor.
data = data | (0X80 * !!bit); işlemi böylemi düşündünüz?
data = (data | 0X80) * !!bit; yada böylemi?

derleyici sizin düşündüğünüz gibi mi işlem yaptı? kısmını aydınlatmak için,
parantezli bir deneme yapsanız.

brandice5

İki kere değil almak char veri tipini boolean yapmak için kullanılır.