Форум программистов CodeGuru
22 Июнь 2018, 09:20:18 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Войти
Новости:
 
   Начало   Помощь Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: Чем define хуже функций?  (Прочитано 2528 раз)
0 Пользователей и 1 Гость смотрят эту тему.
ertyuo
Новичок
*
Офлайн Офлайн

Сообщений: 1


Просмотр профиля
« : 08 Январь 2010, 20:14:21 »

Из статьи: директивы препроцессора define узнал новость о использовании define в качестве макроса, т.е. по типу функции:
#define nul (i) (i+i+2)
Но, при просмотре различных программ на СИ/Си++ не видел данного использования директивы define. В чем заключается его проигрыш функциям?
« Последнее редактирование: 08 Январь 2010, 22:30:44 от 3V » Записан
3V
Администратор
Ветеран
*****
Офлайн Офлайн

Сообщений: 1347



Просмотр профиля WWW
« Ответ #1 : 08 Январь 2010, 22:32:05 »

узнал новость о использовании define в качестве макроса

парень шел к успеху, да ? Пых-пых
Записан

Valery
Пользователь
***
Офлайн Офлайн

Сообщений: 83


Просмотр профиля
« Ответ #2 : 17 Январь 2010, 14:38:07 »

Но, при просмотре различных программ на СИ/Си++ не видел данного использования директивы define.
Плохо смотрел.
 очень часто особено на C
Цитировать
В чем заключается его проигрыш функциям?
В том что невозможно контролировать аргументы
В том что возможны наведенные ошибки

например
#define mul(i) (i*i)

.......
k=mul(x+y);

развернется в

k=x+y*x+y ;

что как  ты понимаешь не совсем то.
поэтому и придуманы инлайн функции.

и самое главное define это директива препросесора, т.е. свои действия проводит ДО компиляции
С уважением Валерий

Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2015, Simple Machines Valid XHTML 1.0! Valid CSS!