Вы можете написать функцию C со списком аргументов переменной длины. Вы можете использовать '...' в качестве типа данных для одного из объявленных параметров вашей функции, чтобы указать, где в списке параметров начинается список переменных аргументов. (Это позволяет вам иметь один или несколько обязательных аргументов перед началом списка.)
printf () - это пример функции, написанной с использованием этого средства (известного как varargs).
printf(const char *restrict format, ...);
Здесь требуется первый аргумент, за которым может следовать ноль или более дополнительных аргументов.
Если вы написали свою функцию таким образом, она могла бы предоставить значение по умолчанию для отсутствующего параметра.
Для функции C - нет. Для метода класса Objective C - да, вы просто используете два метода, один из которых имеет короткий параметр, вызывая другой метод.
Или вы можете переименовать свои источники в .mm, и функции C волшебным образом станут C ++.
В ObjC нет параметров по умолчанию.
Однако вы можете создать 2 метода:
-(void)fooWithA:(int)a b:(int)b c:(int)c {
...
}
-(void)fooWithA:(int)a b:(int)b {
[self fooWithA:a b:b c:0];
}
Для C: ничего особенного не добавляется к подмножеству C с помощью ObjC. Все, что нельзя сделать на чистом C, также невозможно сделать путем компиляции в ObjC. Это означает, что вы не можете иметь параметры по умолчанию или перегружать функцию. Вместо этого создайте 2 функции.
Нет, objective-c не поддерживает параметры по умолчанию. См. аналогичный вопрос