Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: объясните, пожалуйста, что такое перегрузка в чистом С???  (Прочитано 13730 раз)
0 Пользователей и 1 Гость смотрят эту тему.
prostydent
Гость
« : 25-12-2008 11:23 » 

надо выяснить что такое перегрузка в чистом Си, помогите кто может, очень надо
Записан
McZim
Команда клуба

ru
Offline Offline
Пол: Мужской
Я странный


WWW
« Ответ #1 : 25-12-2008 11:31 » 

перегрузка чего?
Записан

The CBO without stats is like a morning without coffee. (c) T.Kyte.
prostydent
Гость
« Ответ #2 : 25-12-2008 11:40 » 

перегрузка операторов и функций, хотя бы что нито
Записан
Вад
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #3 : 25-12-2008 11:41 » 

функции, надо полагать Улыбаюсь Бог Википедия в помощь
Записан
prostydent
Гость
« Ответ #4 : 25-12-2008 11:57 » 

да я там был уже, спасибо конечно, но по моему вопросу там есть только лишь в конце, а именно то что в Си перегрузки как таковой нет в отличии от С++, а каков тогда там механизм? как там это делается?(в Си)
Записан
Вад
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #5 : 25-12-2008 12:00 » 

Код:
int doSomething(int intArg);
int doSomething(float floatArg);
а это чем не перегрузка?
всё равно же потом
Код:
doSomething(argOfSomeType);
Записан
McZim
Команда клуба

ru
Offline Offline
Пол: Мужской
Я странный


WWW
« Ответ #6 : 25-12-2008 12:07 » 

prostydent, скажи, что ты в приведенной ссылке такого углядел что можно в с++, но нельзя в си?
Записан

The CBO without stats is like a morning without coffee. (c) T.Kyte.
prostydent
Гость
« Ответ #7 : 25-12-2008 12:13 » 

я прошу прощения, может быть за свою непонятливость, но в чем же ОСНОВНОЕ различие в перегрузке в Си и С++?

 McZim, там в конце есть табличка, в которой показано, где есть перегрузка, а где нет
Записан
Вад
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #8 : 25-12-2008 12:16 » 

Давно уже не писал на чистом C (и не писал перегрузку функций) - но там случайно не макросами? Улыбаюсь
Записан
McZim
Команда клуба

ru
Offline Offline
Пол: Мужской
Я странный


WWW
« Ответ #9 : 25-12-2008 12:27 » 

prostydent, так мы сейчас о чем? О перегрузке функций или о перегрузке операций?

Основное отличие, как сказала педивикия, в том что, в си перегрузки как таковой нет, а с++ есть!
Записан

The CBO without stats is like a morning without coffee. (c) T.Kyte.
Вад
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #10 : 25-12-2008 12:34 » 

Значит так, перегрузки там нет на уровне компилятора. Зато можно учинить на уровне препроцессора Улыбаюсь
Код: (C)
int function_int(int arg1, int arg2);

float function_float(float arg1, float arg2);

#define FUNCTION(type, arg1, arg2) \
        function_##type(arg1, arg2)
неоднократно встречал код, написанный в подобном стиле. Потом:
Код:
int test = FUNCTION(int, 1, 4);
float ftest = FUNCTION(float, 1.0, 4.0);
и всё ОК Улыбаюсь
« Последнее редактирование: 25-12-2008 12:41 от Вад » Записан
Вад
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #11 : 25-12-2008 12:39 » 

Вот пример с переменным числом аргументов:
Код: (C)
int function_1(int arg1);
int function_2(int arg1, int arg2);
#define FUNCT(arg_count, args_list) \
        function_##arg_count##args_list

потом
Код: (C)
int test = 0;
int test1 = FUNCT(1, (test));
int test2 = FUNCT(2, (test, test1));
Записан
prostydent
Гость
« Ответ #12 : 25-12-2008 12:44 » 

спасибо=)
Записан
Ochkarik
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #13 : 25-12-2008 17:13 » new

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

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines