Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
duran_duran
1 / 1 / 0
Регистрация: 11.01.2014
Сообщений: 20
#1

inline и define - C++

18.01.2014, 22:43. Просмотров 416. Ответов 3
Метки нет (Все метки)

Почему использовать inline-функции лучше, чем использовать команду
препроцессора #define? Смысл в том, что лучше лишний раз не трогать препроцессор?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.01.2014, 22:43     inline и define
Посмотрите здесь:

#define VS inline - C++
Что работает быстрее: #define SQR(x) x*x void Func() { for(int i = 0; i < 10; ++i) { cout << SQR(i) << endl; ...

Как влияет inline и обертка(#ifndef #define #endif) .h файла на компоновщик. - C++
Есть файл Point.h: #ifndef POINT_GUARD #define POINT_GUARD ...

inline - C++
В хедере определён класс со static-методами, в исходнике реализация этих методов. Один из методов определяется с ключевым словом inline....

#define catalog - C++
При разростании проекта возникла проблема. Есть к примеру 10 папок. В каждой есть файл типа *.h с названием обьекта и соответственно...

Не срабатывает #define - C++
Почему не срабатывает #define и как исправить ? #include "stdafx.h" #include "conio.h" #include "Tennis.h" #define LIM 20 using...

Директивы define - C++
Рассматривая настоящую объемную программу, наткнулся на огромное количество файлов с длинным списком директив #define. Можете вкратце...

Нелепые define-ы - C++
Вопрос... Какой смысл в таких define-ах? Чтобы никто ни черта не понял? оО #define _TRY_BEGIN try { #define _CATCH(x) } catch (x)...

Const #define - C++
{ const int HOLFSDsize= 2;//#define HOLFSDsize 2 // m-угольник void HOLFSD() { int i, n, l; // объявляем...

массивы в define - C++
Ребят, подскажите плиз. Имеется программа для работы с неким исполнительным механизмом посредством СОМ-порта из-под никсов. Форматы...

#define и clrscr() - C++
Добрый день! В прошлый раз мне тут здорово помогли...вот и сейчас, надеюсь на помощь. Коллега, который писал код, уволился. В мне...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
gromo
370 / 269 / 24
Регистрация: 04.09.2009
Сообщений: 1,214
18.01.2014, 23:01     inline и define #2
Цитата Сообщение от duran_duran Посмотреть сообщение
Почему использовать inline-функции лучше, чем использовать команду
препроцессора #define? Смысл в том, что лучше лишний раз не трогать препроцессор?
Смысл в том, что inline - это средство языка С++, а функции препроцессора - это пережитки Си.
+ препроцессор небезопасен в плане побочных эффектов, если ему в качестве параметров будут передаваться не атомарные выражения, например, variable++
И вообще, сами поразмыслите - препроцессор это текстовая макро-замена, в то время как функция - это полнофункциональный (сорри за тавтологию) элемент языка.
Убежденный
Системный программист
Эксперт С++
15237 / 6869 / 1088
Регистрация: 02.05.2013
Сообщений: 11,250
Завершенные тесты: 1
18.01.2014, 23:08     inline и define #3
Цитата Сообщение от duran_duran Посмотреть сообщение
Почему использовать inline-функции лучше, чем использовать команду
препроцессора #define?
А кто сказал, что лучше ?
Всяк метод хорош бывает в определенных обстоятельствах.
Вот BOOST_SCOPE_EXIT возьмите, к примеру. Сможете сделать
лучше на inline-функциях ?

http://www.boost.org/doc/libs/1_50_0...COPE_EXIT.html
Croessmah
Модератор
Эксперт CЭксперт С++
12979 / 7291 / 812
Регистрация: 27.09.2012
Сообщений: 18,007
Записей в блоге: 3
Завершенные тесты: 1
19.01.2014, 09:34     inline и define #4
Цитата Сообщение от duran_duran Посмотреть сообщение
Почему использовать inline-функции лучше, чем использовать команду
препроцессора #define?
можно и подобие шаблонов на препроцессоре настряпать, но нужно ли это делать, если шаблоны сами по себе имеются в языке.
Если есть возможность заменить макрос на встраиваемую функцию, то имхо, лучше заменить.
Да и ошибки искать в функции намного проще чем в макросе.
Yandex
Объявления
19.01.2014, 09:34     inline и define
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru