Перегрузка оператора в C?

Можно ли сделать перегрузку оператора или что-то подобное (встроенная функция?) в C? Я знаю, что c не поддерживает class, но могу ли я создать оператор для struct?

Я ничего не могу найти об этом в Интернете, потому что Google будет игнорировать «+», поэтому, если я попытаюсь найти это в Google, я получу результаты только на C++.


person Stas Jaro    schedule 08.03.2012    source источник
comment
Многие компиляторы C поддерживают встроенные функции, но C не поддерживает перегрузку операторов. Фактически, согласно Википедии, C99 поддерживает встроенные функции как часть стандарта.   -  person Adam Mihalcin    schedule 08.03.2012
comment
возможный дубликат перегрузки оператора в C   -  person Tim Cooper    schedule 08.03.2012


Ответы (5)


Нет, вы не можете сделать это в C. Используйте C++, если хотите перегрузить операторы.

Вы можете поместить указатели на функции внутрь структуры, если вам нужно поведение, подобное объектам C++.

person Carl Norum    schedule 08.03.2012
comment
Что делать? Поместить указатель функции в структуру? struct x { void (*functionPointer)(void) }; - person Carl Norum; 08.03.2012
comment
На самом деле перегрузка операторов является причиной того, что я перешел на C++ для проекта, над которым я работал — гораздо удобнее использовать перегруженный оператор, чем обычную функцию, при выполнении векторных вычислений. - person Demi; 08.09.2013

Нет, это невозможно.

Кстати, вы можете удалить C++ из результатов поиска Google, если добавите -"C++" в свой поисковый запрос.

person Caner    schedule 08.03.2012

C++ представил важную и интересную функцию — перегрузку операторов.

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

person ChapMic    schedule 08.03.2012

C не поддерживает перегрузку операторов или наличие функций внутри структур. Вам нужно будет использовать C++ для этих функций.

person Mark Robinson    schedule 08.03.2012

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

person Aditya Naidu    schedule 08.03.2012