Date: 2021-02-12 09:52 (UTC)
archaicos: Шарж (Default)
From: [personal profile] archaicos
Как вызов делается, откуда? Рукописный C-код? Сгенерированная хрень?
Какова однородность типов аргументов?
Какую проблему решаем?

А то можно же было бы в самом простом случае собирать аргументы в массив и евоный адрес передавать.
А массив – можно фиксированного размера, а можно через malloc(). А можно и VLA (хотя, лучше избегать).
Через ... и va_arg() тоже можно. Даже разнообразное.
Но нужно или число аргументов, или признак конца, или ещё что-то, если нет фиксированной схемы.

А можно ещё прикол типа чтобы функция возвращала указатель на функцию... Тогда можно паровозик с вагончиками: f(1)(2)(3)(4). Но это больше для прикола. Разницы между разделением запятыми и скобками не много.

Ещё были трюк, где макрос считал число аргументов.

Занятные вещи, которые могут не пригодится, на пофантазировать:
https://en.cppreference.com/w/c/language/generic
https://en.cppreference.com/w/c/language/compound_literal
This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

If you are unable to use this captcha for any reason, please contact us by email at support@dreamwidth.org