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

Использование имени макроса в обычных условиях - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Функция проверки возраста по дате рождения из string http://www.cyberforum.ru/cpp-beginners/thread1302670.html
Здравствуйте, есть строка вида: Имя День Месяц Год Valera 15 6 1987 Задача состоит в том чтобы написать функцию для проверка больше или равно человеку 20 лет. Если Да вернуть true, нет false....
C++ Написание 2d игр Здравствуйте. Хочу начать писать элементарные 2д игры(арканоиды, что-то похожее на space inviders, etc...) До этого писал консольный лабиринт и по сути всё. Так вот, посоветуйте, на что мне стоит... http://www.cyberforum.ru/cpp-beginners/thread1302660.html
Почему функция atanh работает неправильно? C++
Задание http://content-15.foto.my.mail.ru/mail/megabayt_m/_answers/i-359.jpg Кусок кода for (double X = Xn; X <= Xk; X += dX) { n = 0; sum = 0; y = 0; do { y = 1 / ((2 * n +...
Запись в файл и возможность его редактирования C++
задание: напишите программу которая запрашивает у пользователя имя, фамилию, дату рождения, номер группы и записывает данные в файл. программа должна осуществлять поиск по полученному файлу с...
C++ Замена нескольких пробелов подряд на один http://www.cyberforum.ru/cpp-beginners/thread1302637.html
Visual Studio 13. Надо заменить пару пробелов подряд на один. Использовать putchar и getchar, или gets_s и puts, без указателей и всего прочего. Вот мой код, заменяет только по одному...
C++ Нужно написать код для интеграла Вот самое задание. Извините что на укр, но надеюсь на вашу помощь. Я новичёк в этом деле, так что не судите строго. П.С. На завтра нужно Задачу нужно переписывать в сообщение! Язык форума -... подробнее

Показать сообщение отдельно
TheCalligrapher
С чаем беда...
Эксперт CЭксперт С++
3826 / 2084 / 532
Регистрация: 18.10.2014
Сообщений: 3,699
17.11.2014, 05:29
Цитата Сообщение от Izual Посмотреть сообщение
Как использовать такие имена макросов
Не совсем понимаю, зачем вам это нужно. Все макросы - константы времени компиляции, поэтому если они и употребимы в рамках обычных логических, арифметических или каких других выражений выражений, они все равно должны "сокращаться" компилятором. Иногда это бывает нужно, но очень редко.

В любом случае, использовать в обычных выражениях можно только макросы, которые всегда определены и всегда замещаются на какое-то значение. Например, '_MSC_VER' как раз такой макрос. Никто вам не запрещает писать прямо в коде

C++
1
2
3
4
5
6
if (_MSC_VER >= 1300)
{
}
else
{
}
хоть для '_MSC_VER' в этом и нет особого смысла (лучше было воспользоваться '#if'). 'RAND_MAX', 'INT_MAX', 'CHAR_BIT' и т.п. как раз такие макросы.

Что же касается макросов типа '_WIN64', то они используются по другому: они либо определены, либо не определены. Если макрос не определен, то использование его в обычном коде приведет просто к ошибке. Т.е. такие макросы никакого более-менее осмысленного применения в "обычном" коде не имеют.
2
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru