Для проекта класса, который я пишу, руководство по стилю моего учителя для функций говорит, что «входные параметры должны отображаться перед параметрами». Я не слишком уверен, что они подразумевают под этим?C параметры ввода и вывода функции
ответ
Если у меня есть функция
void foo(int a, int b, int* c)
{
*c = a+b;
}
В приведенном выше случае, а и б являются входами, а с вл етс выходом.
Как правило, вы используете «выходы» таким образом, если вы возвращаете массив.
Спасибо! Есть ли у вас какие-либо рекомендации относительно порядка примитивных переменных и указателей/массивов (порядок сортировки ввода/вывода)? – user7252850
Независимо от того, что имеет смысл, когда вы заявляете, что он работает лучше всего. Группировка параметров по типу не имеет смысла. – AntonH
C фактически не имеет параметров «ввода» и «выхода», по крайней мере, не напрямую. (Некоторые языки делают.) Все аргументы передаются по значению, что означает, что функция получает значение аргумента, но любые изменения параметра невидимы для вызывающего.
(Терминология: А * Параметр»представляет собой именованный объект в теле функции, определенные в скобках; аргумент это выражение в вызове функции Каждый аргумент вычисляется и полученное значение присваивается. . соответствующий параметр)
Тем не менее, вы можете имитировать «выходные» параметры с использованием указателей, например:.
void foo(int in, int *out);
указатель передаются по значению, но функция может присвоить значение с помощью указателя до *out
, который будет виден вызывающему. (out
также может использоваться в качестве входного параметра, который является общим для больших типов, где передача указателя более эффективна или как параметр ввода/вывода.)
Таким образом, «входные параметры должны отображаться перед параметрами», вероятно, означает что параметры указателя не должны отображаться перед параметрами указателя, используемыми для косвенного возврата значений.
Это обычно для void
функции.
void some_function (int input_1, int input_2, char* output)
{
/* Do things with input_1 and input_2. */
/* Modify "output". */
}
Код я просто дал очень неопределенными, и параметры ввода/вывода в зависимости пористости могут быть применены во многих отношениях.
Очень верно. Я отредактирую свой ответ соответственно. Большинство людей изменяют параметры, используя функции void, поэтому я, возможно, не обратил внимания на это. – moosefoot
- 1. параметры ввода/вывода в Hadoop
- 2. Функции ввода-вывода Emacs
- 3. Относительно ввода и вывода C++
- 4. DLLImport C++ функции с char * input as и параметры вывода
- 5. параметры ввода/вывода в прологовом определении
- 6. вызов функции C++ в Java с аргументами ввода и вывода
- 7. Файл ввода вывода C++
- 8. связывать параметры ввода и вывода анонимного pl/sql
- 9. Функции ввода/вывода D-файла
- 10. Неадсорные параметры ввода/вывода для Steam Analytics
- 11. Итераторы ввода и вывода
- 12. Параметры и функции в C++
- 13. Параметры и классы функции C++
- 14. Функции C# и необязательные параметры
- 15. C - параметры функции и указатели
- 16. Параметры отливки и вывода
- 17. Перегрузка ввода-вывода в C++
- 18. Проверка ввода и вывода массива C++
- 19. Понимание ввода и вывода в C
- 20. строка ввода и вывода в C
- 21. Порты ввода-вывода ввода-вывода и обработка stdout
- 22. Ошибка ввода-вывода ввода-вывода
- 23. Порт ввода ввода-вывода ввода-вывода
- 24. C# Gamepad Класс ввода/вывода
- 25. Файлы ввода и вывода
- 26. Перенаправление ввода и вывода
- 27. Оптимизация ввода-вывода в C++
- 28. Методы ввода-вывода в C
- 29. ввода/вывода файлов в C++
- 30. Форматирование ввода/вывода в C++
В '(a, b)' 'a' появляется перед' b'. –
'int func (int input, int * output)' –