R Hegde Ответов: 1

Как установить переменную указателя структуры в значение по умолчанию NULL в параметре функции?


struct queue{
    int value;
    struct queue *tlink;
    struct queue *blink;
};

typedef struct queue* Q;

void enqueue(Q top, int val, Q bottom=NULL);


ошибка:
expected ‘;’, ‘,’ or ‘)’ before ‘=’ token
void enqueue(Q top, int val, Q bottom=NULL);


Что я уже пробовал:

Я пытаюсь инициализировать переменную указателя структуры до значения по умолчанию NULL в параметре функции. (Параметр по умолчанию)

Peter_in_2780

Язык Си (в отличие от многих его производных) не использует параметры по умолчанию. Вам нужно будет найти другой способ выразить то, чего вы хотите достичь.

1 Ответов

Рейтинг:
6

OriginalGriff

C не имеет никакого понятия о параметрах по умолчанию, так что вы в значительной степени не можете этого сделать.


(Что является ложью для детей, потому что вы можете, но это ужасно сложно и грязно: C аргументы по умолчанию - переполнение стека[^] - см. решение BK, которое TBH хуже, чем исходная проблема с точки зрения технического обслуживания POV).