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

Возможный дубликат:
function overloading in C

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

Можно 9X_functions ли в C определить несколько функций с одним 9X_function и тем же именем, но с разными параметрами? Я 9X_c вырос в C#. В C# следующий код полностью 9X_functions допустим.

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

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

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

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

27
2

  • Нет, перегрузка функций не разрешена в C, но ...
3
Общее количество ответов: 3

Ответ #1

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

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

9X_function

52
2

  • Если вы хотите увидеть, как это поддерживается в C++, используйте инструмент `nm` в unix-подобных ОС, и вы увидите, что символы, встроенные в ELF в C++, искажаются, а информация об их типе добавляется в имя с ...

Ответ #2

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

Нет. В строгом C вы не можете выполнять 9X_functions перегрузку.

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

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

10
0

Ответ #3

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

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

3
0