Я пытаюсь изучить c, поэтому я попытался прочитать некоторый исходный код.
Но я понятия не имею, что это может означать:Array как функция с аргументами?
static const char*(*const functab[])(void)={
ram,date
};
Первая часть, static const char*
прекрасно, как кажется, является функцией (имеет аргумент типа void
), static
должно означать, что только видимый в этом файле, и const char*
должен означать, что значение не может быть изменено, но адрес может быть изменен.
Но в этом случае, это не имеет смысла после последней части после имени функции, как это было в случае с
static const char * date(void);
static const char * ram(void);
Вместо имени функции есть (*const functab[])
, константный массив называется functab содержащего адреса?
Это какая-то функция обертывания, содержащая функции ram и date? Какой-то альтернативный способ объявления массивов?
Это может помочь: HTTP: // cdecl.org/. – paulotorrens
@paulotorrens Нет, это не так, этот сайт довольно глуп. Попробуйте совершенно тонкий код в примере OP, и вы получите «синтаксическую ошибку». Я предполагаю, что они ссылаются на синтаксическую ошибку в исходном коде cdecl.org ... – Lundin
Оказывается, cdecl.org не распознает статическое ключевое слово. Как жалко. – Lundin