Почему я могу вызывать функцию через указатель со слишком большим количеством аргументов?

Допустим, у меня есть эта функция:

int func2() {
    printf("func2\n");
    return 0;
}

Теперь я объявляю указатель:

int (*fp)(double);

Это должно указывать на функцию, которая принимает double аргумент и возвращает int .

func2 НЕ имеет аргументов, но все же, когда я пишу:

fp = func2;
fp(2);

2 просто произвольным number), функция func2` вызывается правильно.

Почему? Неужели не имеет значения количество параметров, которые я объявляю для указателя на функцию?

23
задан einpoklum - reinstate Monica 20 August 2017 в 16:21
поделиться