Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: C++ необязательный параметр  (Прочитано 2582 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн [DarkNet]Alpha

  • Автор темы
  • Активист
  • *
  • Сообщений: 987
  • Эмоциональный эльдар
    • Просмотр профиля
    • EBM-радио
C++ необязательный параметр
« : 11 Февраля 2011, 00:00:47 »
Приветствую, товарищи.
Имеется стек и функция.
struct LangryStack
{
char names[LSTACK_SIZE];
int values[LSTACK_SIZE];
int top;
};

int lpush(LangryStack *_stack, char _name, int _value)
{
if(_stack->top < LSTACK_SIZE)
{
_stack->names[_stack->top]  = _name;
_stack->values[_stack->top] = _value;
_stack->top++;
return 0;
}
else
{
fprintf(stderr, "LStack error: overflow.\n");
return LSTACK_ERR_OVERFLOW;
}
}

Можно ли сделать так, чтобы при незаполненном аргументе _value имя вносилось в массив names, а соответствующий элемент массива values не менялся?

Оффлайн Sova777

  • Участник
  • *
  • Сообщений: 208
    • Просмотр профиля
    • Несколько слов о NetBeans C/C++ Pack'е
Re: C++ необязательный параметр
« Ответ #1 : 11 Февраля 2011, 01:28:59 »
А если сделать так:
int lpush(LangryStack *_stack, char _name, int* _value = NULL)
Пользователь OpenSolaris 2008.11, Ubuntu 8.10, Windows XP. Mac OS X не нравится, стараюсь не использовать.

Оффлайн ierofant

  • Любитель
  • *
  • Сообщений: 52
    • Просмотр профиля
Re: C++ необязательный параметр
« Ответ #2 : 11 Февраля 2011, 15:34:50 »
int lpush(LangryStack *_stack, char _name, int _value)
int lpush(LangryStack *_stack, char _name)
Ну или как вариант можно сделать два варианта функции, чтобы не проверять каждый раз _value.

 

Страница сгенерирована за 0.09 секунд. Запросов: 25.