170 похожих чатов

Парни, нужно в Си реализовать перегрузку функции. Я понимаю, что

в Си нет такого понятия, но, вроде как, это можно сделать с помощью макросов\функций с переменным числом аргументов. У меня есть функция int attach_object(int* reg, int* id) мне нужно добавить функцию int attach_object(int* reg, int* id, const char* name) Поскольку я не могу использовать перегрузку функций и параметры по умолчанию в Си, то нужно как-то извратиться типа использовать функцию с переменным числом аргументов int attach_object(int* reg, int* id, ...)Но как мне узнать внутри, что пользователь передал туда еще и имя объекта?

19 ответов

15 просмотров

Посмотри _Generic

Посмотри как в курле реализована перегрузка

Sergey-Dubovik Автор вопроса
Kirill Bolshakov
Посмотри как в курле реализована перегрузка

А можно название функции в курле? А то листаю гитхаб с исходниками курла и пока не могу найти

🐈
а что там перегружено? 0_o

Эта функция и перегружена

Sergey-Dubovik Автор вопроса
Kirill Bolshakov
curl_easy_setopt как то так

curl_easy_setopt ? Там просто, вроде, функция с переменным число аргументов

Sergey Dubovik
curl_easy_setopt ? Там просто, вроде, функция с пе...

Ну дак через это и делается там перегрузка

Sergey-Dubovik Автор вопроса
Kirill Bolshakov
Ну дак через это и делается там перегрузка

В нее передается option, который парсится и в зависимости от этого узнается число аргументов. У меня нет такой возможности

Kirill Bolshakov
Ну дак через это и делается там перегрузка

это не перегрузка. это функция с переменным числом аргументов.

Sergey Dubovik
В нее передается option, который парсится и в зави...

Эта штука? https://ru.wikipedia.org/wiki/%D0%A2%D0%B5%D1%85%D0%BD%D0%BE%D0%BB%D0%BE%D0%B3%D0%B8%D1%8F_%D0%B5%D0%B4%D0%B8%D0%BD%D0%BE%D0%B3%D0%BE_%D0%B2%D1%85%D0%BE%D0%B4%D0%B0

🐈
это не перегрузка. это функция с переменным числом...

Другими словами перегрузка. Функция, которая имеет одно и тоже название, но имеет разные возвращаемые значения, аргументы является перегрузкой функции

Sergey Dubovik
В нее передается option, который парсится и в зави...

Тогда есть ещё какая то всратость - https://en.cppreference.com/w/c/language/generic Больше костылей не знаю, выкинь С - юзай С++

Kirill Bolshakov
Ну дак что ты ещё от Си ожидал?

я ожидал от С++-программистов, что они не будут путать вариативные функции с перегрузкой функций. от Си я не ожидаю перегрузки функций, так как её там нет.

🐈
я ожидал от С++-программистов, что они не будут пу...

Её нет, но сишникам так хочется её, что они готовы костылями её эмулировать

Sergey-Dubovik Автор вопроса
Kirill Bolshakov
Тогда есть ещё какая то всратость - https://en.cpp...

Я нашел еще вот такое: http://locklessinc.com/articles/overloading/ - но что то не могу никак прикрутить то что тут есть, к моей задаче. С удовольствием выкинул бы Си и юзал С++, но это по работе надо, а там нет пока такой возможности.

Kirill Bolshakov
Её нет, но сишникам так хочется её, что они готовы...

хрен его знает. я хоть и си-шник по большей части, но такой хернёй почему-то не страдаю

Похожие вопросы

Обсуждают сегодня

Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Ну вот просто даже давайте вот как. Какой нибудь конкретный кейс, можете в пример привести, где бч работает и приносит прикладную пользу, а не просто что бы было? Не крипту.
Alexander Andreev
22
объясните пожалуйста, почему функция не работает должным образом? вроде должно брать активное окно сравнивать его размер с размером экрана, и если есть совпадение = true прове...
JF
12
Гляньте, че бывает: Сегодня по одному проекту одной вебстудии делал проект небольшой, на их хостинге. На Modx revo. В определенный момент , работая в админке, вдруг перестал р...
Artem
7
лучше скажите, причём тут паскаль?
Alexey Kulakov
36
Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
12
> Копаем глубже > Следующий момент был, когда я спросил его, знает ли он JavaScript. Он ответил, что его учили работать с C#. Я тоже в университете писал на C#, но даже там мн...
Oleg Volkov
4
И никого не интересует какие пакеты кто использует. ((% Заходишь на сайт симфони и видишь поддержку Украины - по законам РФ это ж экстремизм. Только никто не отказывается от с...
Am Ambrion
11
Кто нибудь либу Zstandart использовал ? Это либа для сжатия от Цукерберга
Andrey Electron
9
Чтобы перехватить все нажимания буков на форме, надо хук ставить? Пробовал на форме ОнКейДаун, оно ловит клаву если фокус не на компоненте с вводом текста
Serjone
15
Карта сайта