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

Передача препроцессорных определений в командной строке - C++

Восстановить пароль Регистрация
 
BESSON_off
 Аватар для BESSON_off
3 / 0 / 1
Регистрация: 08.07.2013
Сообщений: 329
02.08.2014, 16:35     Передача препроцессорных определений в командной строке #1
Здравствуйте!

Подскажите пожалуйста, как передать препроцессорное определение через командную строку. То есть пишется код, который проверяет определение DEBUG (#ifndef DEBUG) и если оно определено, то вставляются, допустим, инварианты. Хочу, научиться передавать определение DEBUG не вручную определяя, а через консоль. Есть такие методы? (использую MVS 2012)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.08.2014, 16:35     Передача препроцессорных определений в командной строке
Посмотрите здесь:

Калькулятор в командной строке C++
C++ Параметры в командной строке
Передача аргументов командной строки функции main() C++
C++ Изображения в командной строке
C++ Передача аргументов командной строки
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Vourhey
Почетный модератор
6469 / 2244 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
02.08.2014, 16:39     Передача препроцессорных определений в командной строке #2
/D "anything"
-=ЮрА=-
Заблокирован
Автор FAQ
02.08.2014, 17:40     Передача препроцессорных определений в командной строке #3
BESSON_off, нет таких методов т.к #ifndef это препроцессорная директива и работает она на этапе линковки. Максимум что можно сделать передавать параметром - это какой то флаг и в зависимости от него производить ту или иную отработку кода
zss
Модератор
Эксперт С++
 Аватар для zss
5950 / 5555 / 1786
Регистрация: 18.12.2011
Сообщений: 14,195
Завершенные тесты: 1
02.08.2014, 20:22     Передача препроцессорных определений в командной строке #4
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
работает она на этапе линковки
не на этапе линковки, а в самом начале - до компиляции.
-=ЮрА=-
02.08.2014, 21:24
  #5

Не по теме:

Цитата Сообщение от zss Посмотреть сообщение
не на этапе линковки, а в самом начале - до компиляции.
- zss, Вам слово препроцессор чего- нибудь говорит?Или привыкли к интерактивному линку от visual studio?
почитайте http://itandlife.ru/programming/cpp/...m-na-yazyke-c/

Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
02.08.2014, 21:32     Передача препроцессорных определений в командной строке #6
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
И что ты хочешь доказать этой ссылкой кроме собственной неправоты?
-=ЮрА=-
Заблокирован
Автор FAQ
02.08.2014, 22:07     Передача препроцессорных определений в командной строке #7
Это даже не смешно!
http://itandlife.ru/programming/cpp/...m-na-yazyke-c/
Сначала программа передается препроцессору, который выполняет директивы, содержащиеся в ее тексте (например, включение в текст так называемых заголовочных файлов — текстовых файлов, в которых содержатся описания используемых в программе элементов).

http://www.firststeps.ru/foxpro/helpfox/r.php?4
Выполняет условное включение группы команд в код на этапе компиляции, если определена константа этапа компиляции.

Синтаксис

#IFDEF | #IFNDEF ConstantName
Commands
[#ELSE
Commands]
#ENDIF
Параметры
#IFDEF
Указывает, что на этапе компиляции следует включить заданную группу команд, если была определена константа этапа компиляции с именем ConstantName.

http://msdn.microsoft.com/ru-ru/library/teas0593.aspx
Директива #define создает макрос, представляющий собой ассоциацию обычного или параметризованного идентификатора со строкой токена. После определения макроса, компилятор может заменить строку токена для каждого вхождения идентификаторов в файле источника.
Добавлено через 4 минуты
вначале так называемый препроцессор делает подстановку код того что задефайнено и исключает из кода то что было #ifndef, дальше идёт связывание. Такие вещи надо знать http://ru.wikipedia.org/wiki/Препроцессор
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
02.08.2014, 22:09     Передача препроцессорных определений в командной строке #8
-=ЮрА=-, ты вообще понял, о чем zss говорил? Директивы препроцессора к стадии линковки никакого отношения не имеют. Если это конечно не какие-нибудь непереносимые #pragma.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.08.2014, 14:55     Передача препроцессорных определений в командной строке
Еще ссылки по теме:

Запуск в командной строке C++
C++ Тетрис в командной строке
Передача числа через аргумент командной строки C++

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

Или воспользуйтесь поиском по форуму:
BESSON_off
 Аватар для BESSON_off
3 / 0 / 1
Регистрация: 08.07.2013
Сообщений: 329
11.08.2014, 14:55  [ТС]     Передача препроцессорных определений в командной строке #9
Спасибо парни!
Yandex
Объявления
11.08.2014, 14:55     Передача препроцессорных определений в командной строке
Ответ Создать тему
Опции темы

Текущее время: 06:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru