Публикации по теме 'variadic-functions'
Вариативные аргументы в функциях - Swift
Чтобы упростить код, вы можете использовать настраиваемые функции, которые принимают переменный список аргументов. Эта концепция известна в Swift как вариативный аргумент.
Допустим, у вас есть следующий экран:
У вас есть следующие подпредставления, которые нужно добавить в представление UIViewController. Вот как этого добиться с помощью переменных аргументов:
Точно так же вы можете создать любую функцию с переменными аргументами для целых чисел:
Таким образом вы можете..
Что такое вариативные функции в C?
В отличие от вашей традиционной функции, которая имеет установленный набор аргументов, вариативная функция может получать неизвестное количество аргументов, и вы сможете циклически перебирать их, используя определенную библиотеку. Здесь вы можете найти основы, чтобы лучше их понять.
Как это работает? Вы должны объявить свой прототип функции, как обычно, и добавить три точки (…) в качестве последнего аргумента. Это сигнализирует о возможности того, что могут быть дополнительные..
Переменное количество аргументов в C и C ++
Все это время я продолжал использовать printf и писать функции, но никогда особо не задумывался о том, что printf принимает столько аргументов, сколько вы хотите. Как насчет того, чтобы написать функцию, которая будет делать то же самое?
Файл заголовка, который мы собираемся использовать, - это cstdarg в C ++ и stdarg.h в C. Этот заголовок предоставляет нам один тип и несколько макросов для обработки списка аргументов.
va_list : тип для хранения списка аргументов..
Вариадические функции в C
Variadic Function - это те функции, которые принимают переменное количество аргументов, так как многим из нас всегда интересно, как работают printf и scanf, поскольку мы можем вызывать их с переменным количеством аргументов.
Как это работает?
Вы можете объявить вариативную функцию так же, как другую функцию с последним аргументом функции (a, b, c,…), здесь «…» сигнализирует, что может быть переменное количество аргументов для функции. Это выглядит так:
int sum(int n, …)
Для..
Современный C ++ и вариативные функции: как выстрелить себе в ногу и как этого избежать
Все началось с ошибки, как это обычно бывает. Это был мой первый опыт работы с Java Native Interface , я писал оболочку C ++ для функции Java для создания различных объектов Java. Эта функция - CallVoidMethod - является переменной, и это означает, что ее аргументы - указатель на среду JNI, указатель на новый класс объекта, идентификатор метода для вызова (конструктор в данном конкретном случае) и произвольное количество любых других аргументов. И это разумно, поскольку как..
Вопросы по теме 'variadic-functions'
Как передать переменное количество аргументов в printf / sprintf
У меня есть класс, содержащий функцию «ошибки», которая форматирует некоторый текст. Я хочу принять переменное количество аргументов, а затем отформатировать их с помощью printf.
Пример:
class MyClass
{
public:
void Error(const char*...
123200 просмотров
schedule
02.11.2023
Оберните функцию переменного параметра в C++
Я хотел бы обернуть функцию «вызова» xmlrpc (которая принимает переменное количество параметров) с другой функцией (также принимающей переменное количество параметров). Я хотел бы просто перенаправить переменное количество параметров, которые я...
2451 просмотров
schedule
22.04.2023
Как передать переменное количество аргументов функции PHP
У меня есть функция PHP, которая принимает переменное количество аргументов (с использованием func_num_args() и func_get_args() ), но количество аргументов, которые я хочу передать функции, зависит от длины массива. Есть ли способ вызвать...
113183 просмотров
schedule
16.10.2022
Лучший способ сохранить va_list для последующего использования в C/C++
Я использую va_list для создания отображаемой строки.
void Text2D::SetText(const char *szText, ...)
Это все прекрасно, но теперь у пользователя есть возможность менять язык во время работы приложения. Мне нужно перегенерировать все текстовые...
11995 просмотров
schedule
19.03.2023
Переменное количество аргументов в C ++?
Как я могу написать функцию, которая принимает переменное количество аргументов? Возможно ли это, как?
391491 просмотров
schedule
28.01.2023
Переменное количество аргументов (va_list) с обратным вызовом функции?
Я работаю над реализацией функции, которая будет выполнять другую функцию через несколько секунд в будущем, в зависимости от ввода пользователя. У меня есть приоритетная очередь класса (которую я называю TimedEvent), которая содержит указатель...
3706 просмотров
schedule
05.01.2024
Использование функций ленивой оценки в varargs
Что не так в следующем методе?
def someMethod(funcs: => Option[String]*) = {
...
}
1497 просмотров
schedule
11.11.2022
Проблема с передачей ссылки в качестве именованного параметра в функцию с переменным числом аргументов
У меня проблемы в Visual Studio 2003 со следующим:
void foo(const char*& str, ...) {
va_list args;
va_start(args, str);
const char* foo;
while((foo = va_arg(args, const char*)) != NULL) {
printf("%s\n", foo);
}
}...
953 просмотров
schedule
04.03.2023
Разница между double и double [] в объявлении типа формального параметра
У меня вопрос: в чем разница между этими двумя декларациями?
public static void printMax(double... numbers) { ... }
public static void printmax(double numbers[]) { ... }
double... numbers то же самое, что double numbers[] ?
2891 просмотров
schedule
26.09.2022
Функция varargs Siebel eScript всегда выдает исключение
согласно документации Siebel, eScript поддерживает varargs. Следующий образец взят из документации Siebel:
function SumAll()
{
var total = 0;
for (var ssk = 0; ssk < SumAll.arguments.length; ssk++)
{
total += SumAll.arguments[ssk];...
3628 просмотров
schedule
03.04.2023
сбой функции varargs
У меня есть функция, которая должна принимать переменное количество аргументов (используя varargs) на основе строки формата:
void va(const char* name, const char* argformat, ...) {
int numOfArgs = strlen(argformat);
std::string buf =...
1042 просмотров
schedule
20.05.2023
Varargs для добавления нескольких экземпляров объекта
Мне нужно добавить несколько записей моего PhoneNumber (номер, тип) в мой основной объект Person (имя, PhoneNumber).
Могу ли я использовать varargs для решения этой проблемы или есть лучший и более эффективный способ сделать это??
Я пытаюсь...
481 просмотров
schedule
30.05.2022
Является ли va_start (и т. д.) реентерабельным?
Внося изменения в класс с длинной историей, я был поставлен в тупик из-за особой привычки архитектора заключать свою последовательность va_start -> va_end в мьютекс. В журнале изменений для этого дополнения (которое было сделано около 15 лет назад и...
7135 просмотров
schedule
15.03.2023
Подсчитайте количество параметров в вызове метода аргумента переменной C
При использовании va_start(), va_arg() и va_end() для чтения параметров, переданных методу, есть ли способ подсчитать количество аргументов?
Согласно справочной странице, если вы вызываете va_arg() слишком много раз, вы получаете «случайные...
5819 просмотров
schedule
07.06.2023
Переопределение вариативного метода в target-c
При создании подкласса в target-c, как я могу перенаправить вызов суперклассу в случае вариативного метода. Чем заменить ??? ниже, чтобы отправить все объекты, которые я получил?
- (void) appendObjects:(id) firstObject, ...
{
[super...
1650 просмотров
schedule
07.06.2023
Что лучше для параметров функции обратного вызова C: va_list или многоточие?
Моя библиотека предлагает точку обратного вызова, где пользователи моей библиотеки могут зарегистрироваться для получения информации. Общая форма обратного вызова — это int , за которым следуют различные параметры, тип которых зависит от значения...
2252 просмотров
schedule
14.08.2022
Шаблоны с переменными параметрами: передать пакет параметров без расширения
Старые возможности C stdio предоставляли возможность передавать переменный набор аргументов с использованием возможностей vprintf .
Есть ли аналогичный способ передать пакет параметров вариативного шаблона C ++ 0x без его расширения?
Это...
4178 просмотров
schedule
31.12.2021
Объяснение аргументов, состоящих только из ключевых слов (VarArgs) в Python
Пожалуйста, смотрите код ниже: -
#!/usr/bin/python
# Filename: total.py
def total(initial=5, *numbers, **keywords):
count = initial
for number in numbers:
count += number
for key in keywords:
count += keywords[key]...
16899 просмотров
schedule
15.10.2022
Как подсчитать количество аргументов, переданных функции, которая принимает переменное количество аргументов?
Как подсчитать количество аргументов, переданных функции в следующей программе:
#include<stdio.h>
#include<stdarg.h>
void varfun(int i, ...);
int main(){
varfun(1, 2, 3, 4, 5, 6);
return 0;
}
void varfun(int n_args,...
52615 просмотров
schedule
29.03.2023
Какова цель модификаторов h и hh для printf?
Помимо %hn и %hhn (где h или hh определяют размер объекта указанный ), в чем смысл модификаторов h и hh для спецификаторов формата printf ?
Из-за продвижения по умолчанию, которое требуется стандартом для применения к функциям с...
41598 просмотров
schedule
05.07.2022