Уже задавал похожий вопрос, но возникла надобность передать строку в программу на стадии компиляции.
Есть код:
#ifdef VALUE
std::cout << VALUE << std::endl;
#endif // VALUE
#ifndef VALUE
char* VALUE = "not defined";
std::cout << VALUE << std::endl;
#endif // !VALUE
При компиляции с параметром
cl /DVALUE=100 core.cpp
Всё работает и программа выдаёт число.Как я понял, ключ /D - это вариант только для чисел, а есть ли аналогичный ключ для строк?
Ответ
Это не для чисел, а для литералов. Просто в тексте VALUE до компиляции будет заменено на то, что вы подставите.
Хотите с кавычками - подставьте в командной строке Windows
cl /DVALUE=\"100\"
А вообще - читайте о препроцессоре, это большая и интересная тема... Например, тут
Комментариев нет:
Отправить комментарий