С хэлбэрийн вариадик функцийг тодорхойлохгүй юу?

Агуулгын хүснэгт:

С хэлбэрийн вариадик функцийг тодорхойлохгүй юу?
С хэлбэрийн вариадик функцийг тодорхойлохгүй юу?
Anonim

Тиймээс, зохисгүй аргументуудыг дамжуулдаг Си маягийн вариадик функцийг ажиллуулах цагийн дуудлага нь тодорхойгүй зан үйл-г үүсгэдэг. … Ийм тодорхойгүй үйлдлийг дурын код ажиллуулахын тулд ашиглаж болно.

С хэл дээрх вариак функц гэж юу вэ?

Вариад функцууд нь хувьсах тооны аргумент авах боломжтойфункцууд юм. Си програмчлалд вариадик функц нь програмын уян хатан байдлыг нэмдэг. Үүнд нэг тогтмол аргумент шаардагдах бөгөөд дараа нь дурын тооны аргументыг дамжуулж болно.

Вариадик функцууд муу байна уу?

Шалтгаан нь: Загварын вариак функцууд нь аргументынхаа тоо болон төрлийг хоёуланг нь мэддэг. Тэд төрөлд аюулгүй, аргументуудын төрлийг өөрчлөхгүй.

С++ хэл дээр вариак функцийг хэрхэн зарлах вэ?

Вариад функцууд нь хувьсах тооны аргумент авдаг функцууд (жишээ нь std::printf) юм. Вариадик функцийг зарлахын тулд параметрийн жагсаалтын дараа зууван зураас гарч ирнэ, жишээлбэл. int printf(const char формат…);, үүний өмнө заавал таслал тавьж болно.

Та вариадик параметрүүдийг өөр функц руу хэрхэн дамжуулах вэ?

Та вариадик аргументуудыг вариадик функц руу дамжуулах боломжгүй. Оронд нь та аргумент болгон va_list авдаг функцийг дуудах ёстой. Стандарт номын сан нь va_list авах printf болон scanf хувилбаруудыг өгдөг; Тэдний нэрэнд v. угтвар байна

Зөвлөмж болгож буй: