Форум программистов, компьютерный форум, киберфорум
Наши страницы

Различия между #define и const - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Модуль расчёта пространственного заряда http://www.cyberforum.ru/cpp-beginners/thread209978.html
Модуль расчёта пространственного заряда PIC-методом для ячеек конечно-разностной схемы и CIC-методом для конечно-разностной ячейки. Исходные данные: 1) Координаты и размеры...
C++ Матрица... Ни в какую не могу понять... как в борланде решить задачку... На делфи могу написать а в борланде хоть убейте ни в какую... Ктонить помогите сделать.. если что подкину на пивко. Дана матрица... http://www.cyberforum.ru/cpp-beginners/thread209976.html
Вывод максимального числа, которое повторяется больше одного раза C++
Здравствуйте.... Вот программа которая работает, но меня смущает что я не знаю как прописат что если чисел повторяющих в массиве не будет то нучно чтоб он выдал что нету типо повторения... как это...
C++ Множественное пересечение массивов
Помогите пожалуйста написать программу.... срочно надо.... Дано: N массивов целых чисел, содержащих по M элементов. Результат: массив чисел, принадлежащих одновременно всем массивам
C++ Одномерный массив http://www.cyberforum.ru/cpp-beginners/thread209948.html
Помогите написать программу, пожалуйста!!!!!!!!!! В программе должна быть организована работа с одномерным массивом. Занести в массив сведения о количестве осадков, выпавших за ка-ждый из 12...
C++ В заданной матрице определить максимальный и минимамльный элементы помогите это нужно очень срочно нужно составить программу которая: в заданной матрице определить максимальный и минимамльный элементы. Переставить местами строки содержащие их подробнее

Показать сообщение отдельно
rangerx
1935 / 1544 / 141
Регистрация: 31.05.2009
Сообщений: 2,913
13.12.2010, 19:06
Цитата Сообщение от Escapable Посмотреть сообщение
Собственно вопрос: в чем различия и что лучше использовать?
В C++ всегда следует отдавать предпочтение const. const это часть C++, и в отличии от #define подчиняется правилам языка(например "знает", что такое область видимости; её имя известно компилятору, в то время как от #define после препроцессирования останется только "магическое число").
Цитата Сообщение от RUSya82 Посмотреть сообщение
#define - директива препроцессора, осуществляет замену в тексте программы на этапе компиляции
На этапе компиляции все макросы уже раскрыты.
Цитата Сообщение от ForEveR Посмотреть сообщение
Слабо через const?
В C++ нет никакого смысла писать подобные макросы, во-первых есть inline функции, во-вторых у подобых макросов имеются побочные эффекты, например:
C++
1
2
3
int a = 4;
std::cout << SQUARE(++a) << std::endl;
std::cout << a << std::endl
Цитата Сообщение от asics Посмотреть сообщение
+ в том что такие макросы, могут принимать в качестве параметров не только целечисленные переменый, а й числа з плавающой запятой.
В C++ для этих целей используются шаблоны. И опять же, у подобной функии(макроса) та же проблема, что и выше.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru