Может ли функция C иметь несколько подписей?

Возможный дубликат:
перегрузка функций в C

Извините, если это дубликат, но если это так, я не могу его найти.

В C вы можете определить несколько функций с тем же именем функции, но с разными параметрами? Я исхожу из фона С#. В С# следующий код полностью легален.

//Наша первая функция

int MyFunction()
{
    //Code here
    return i;
}

int MyFunction(int passAParameter)
{
    // Code using passAParameter
    return i;
}

В моем конкретном случае я хотел бы создать функцию, которая имеет один необязательный параметр (то есть int) в конце списка параметров. Это можно сделать?

Ответ 1

№ C не поддерживает перегрузку.

Ответ 2

Нет. В строгом C вы не можете перегружать.

Однако, учитывая, что большинство компиляторов C также поддерживают C++, а C++ поддерживает перегрузку, есть хорошая вероятность перегрузить, если вы используете компилятор C/C++ для основного потока.

Но он не является строго стандартным или переносимым для чистых сред C.

Ответ 3

Нет, вы должны использовать другое имя для каждой функции (это не относится к C++, так как позволяет вам указывать дополнительные параметры)