Комментарии:
Чет вообще неудобно.
А можно так же как и с main, которая через батник вызывается?
int main(int argc, char** argv)
и перебирать параметры через argv[1], argv[2]...argv[argc] ?
Спасибо
ОтветитьО, элипсис… например
void f()
{
printf(“hello”);
}
принимает сколько угодно аргументов. И получаем уб
Спасибо. Все понятно.
ОтветитьПривет, у меня вопрос по варидическим функциям. Насколько я понимаю у нас есть указатель на самое начало стек фрейма и есть указатель на первый вариадический аргумент. Разве этого не достаточно для того что бы нам прочесть все переданные аргументы без явной передачи их кол-ва. Мы ведь можем читать начиная от первого аргумента до того момента пока мы не упремся в начало стек фрейма, всё что нам надо это знать тип аргументов. Или я чего не то не так понимаю?
Ответитьвообще огонь уроки!🤙
Ответитьа зачем нам это, если по факту все равно нужно передавать в функцию количество поступаемых аргументов?
ОтветитьСпасибо Вам огромное за ваш труд! Особенно за внимание к деталям каждой темы, которую Вы разбираете!!! Не останавливайтесь пожалуйста!!! ❤
ОтветитьА как в C++ передать в функцию произвольное число заранее определённых разных классов (но с некоторыми одноименными методами), например "init_interfaces(SPI1, UART2);" когда неизвестно в каком порядке они будут поданы или вовсе без них("init_interfaces();") ? У меня было такое задание на собеседовании, смог решить не все условия и теперь меня этот вопрос уже долго мучает
ОтветитьСкажите, а код компилировался под Windows?
Дело в том, что в Linux, va_list - это структура, в которой описываются смещения и границы параметров. Это сделано для защиты стека.
Да и спасибо за труд.
В C нет функций с параметрами по умолчанию? После Python я воспринимал функции с параметрами по умолчанию, как нечто что есть везде "по умолчанию"
ОтветитьА вот va_arg принимает указатель типа va_list и дескриптор типа(int)...а как можно самому объявить такую функцию чтоб она принимала дескриптор типа?
Ответитьотдельное спасибо за концовку, связанную с С++!
Ответить