C ++ -dagi "ll = long long" va "typedef long long ll" o'rtasidagi farq nima?


javob bering 1:

Birinchisi - taxallus turi, ikkinchisi - tip ta'rifi.

Turli taxallus shunchaki manba kompilyatsiyasining turini almashtiradi.

Tiplar tipi ma'lum turlarning leksikoniga kiradi.

Typeedef turlarni yaratishi mumkin, ishlatilayotgan gap esa allaqachon ma'lum bo'lgan turga taxallus yaratadi.

Sizning misollaringiz farqsiz farqdir, ammo u bog'langan turlar uchun, masalan, ko'rsatgichlar, havolalar va hokazolar uchun osongina tarjima qilinishi mumkin emas.

Men bunday taxallusni yoki typedefni ishlatmaslikni maslahat beraman, chunki bu juda ishonchsiz va allaqachon maqbul alternativalar mavjud, masalan:

int64_t uint32_t

[| u] intN_t

kuygan

int

hover

Siz ushbu va barcha MAX va MIN doimiy qiymatlarni cstdint-ni qo'shib olishingiz mumkin.

# o'z ichiga oling 

(stdint.h)


javob bering 2:

Ma'noda farq yo'q. Standart ([dcl.typedef]) shunday deydi:

Typedef nomi shuningdek taxallus deklaratsiyasi bilan kiritilishi mumkin. Kalit so'zdan keyin identifikator yozilgan nomga aylanadi va identifikator seqtiruvchidan keyin seqtiruvchi atribut identifikatori ushbu tip nomini anglatadi. U xuddi tipedef identifikatori tomonidan kiritilgandek semantikaga ega.

Ll = long bilan deklaratsiya; taxalluslik deklaratsiyasi.