В некоторых языках существует возможность вызова функции с именованными параметрами. Такой способ позволяет указать аргумент для определённого параметра, связав его с именем параметра, а не с позицией. Это возможно, например, в C# или Python.
Рассмотрим «игрушечный» пример на Python с использованием именованных аргументов:
def volume(length=1, width=1, height=1):
return length * width * height;
print(volume())
print(volume(length=2))
print(volume(length=2, width=3))
print(volume(length=2, width=3, height=4))
Здесь в примере одна и та же функция вызывается с разными аргументами. И видно, какой параметр каким значением проинициализирован. Если у функции есть параметры, значения которых можно оставить по умолчанию, то очень удобно проинициализировать только необходимые параметры с помощью именованных аргументов. Но в языке C аргументы функции связаны с позицией, поэтому разработчику нужно помнить порядок следования параметров, что может быть неудобно, если их достаточно много.
Ниже я покажу, как можно сымитировать использование именованных аргументов в C.
Читать полностью »