Ответ 1
Параметры по умолчанию - это функция С++.
C не имеет параметров по умолчанию.
Можно ли установить значения для параметров по умолчанию в C? Например:
void display(int a, int b=10){
//do something
}
main(){
display(1);
display(1,2); // override default value
}
Visual Studio 2008 жалуется на наличие синтаксической ошибки в -void display (int a, int b = 10). Если это не является законным в C, какова альтернатива? Пожалуйста, дайте мне знать. Спасибо.
Параметры по умолчанию - это функция С++.
C не имеет параметров по умолчанию.
В стандарте C. это невозможно. Один из вариантов заключается в кодировании параметров в имени функции, например,
void display(int a){
display_with_b(a, 10);
}
void display_with_b(int a, int b){
//do something
}
В C не указаны параметры по умолчанию.
Один из способов получить это - передать указатели NULL, а затем установить значения по умолчанию, если NULL передан. Это опасно, хотя я бы не рекомендовал его, если вам действительно не нужны параметры по умолчанию.
Пример
function ( char *path)
{
FILE *outHandle;
if (path==NULL){
outHandle=fopen("DummyFile","w");
}else
{
outHandle=fopen(path,"w");
}
}
Не так...
Вы можете использовать массив int или varargs и заполнить отсутствующие данные в вашей функции. Вы теряете время проверки компиляции.