Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.93/15: Рейтинг темы: голосов - 15, средняя оценка - 4.93
FireNovel
150 / 73 / 27
Регистрация: 09.04.2010
Сообщений: 297
1

Можно ли использвовать диррективу препроцессора #warning в Visual Studio 2008

28.07.2010, 12:13. Просмотров 2634. Ответов 15
Метки нет (Все метки)

Здравствуйте Товарищи

Хочу, организовать себе памятку на будущее (чтобы потом поправить код) надумал использовать диррективу препроцессора #warning.
НО тут проблема, в компиляторе Visual Studio 2008, её почему-то нет (может расскажете почему именной её убрали ), ну не заменять же её #error - кой

Может кто в курсе, как решить этот вопрос, буду очень признателен за помощь!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.07.2010, 12:13
Ответы с готовыми решениями:

Народ, можно ли Visual Studio 2008...
Народ, можно ли Visual Studio 2008... настроить под ассемблер, хочу в этой...

где можно скачать visual studio 2008
всем привет! подскажите где можно скачать visual studio 2008?

Как в Visual Studio 2008 можно редактировать главный фрейм?
Как в Visual Studio 2008 можно редактировать главный фрейм? Создал проект...

Написать программу. Задания нужно выполнять на языке Visual C++ в среде Microsoft Visual Studio 2008
Можете написать программу? Задание по номером 3.24 (2 рисунок).

Несовместимость visual c++ 6.0 и visual studio 2008
почему правильно гаписанная программа в visual c++ 6.0 не работает в visual...

15
Evg
Эксперт CАвтор FAQ
19288 / 7147 / 528
Регистрация: 30.03.2009
Сообщений: 19,997
Записей в блоге: 30
28.07.2010, 13:24 2
А точно нет? (просто у меня нету 2008)
0
FireNovel
150 / 73 / 27
Регистрация: 09.04.2010
Сообщений: 297
28.07.2010, 14:11  [ТС] 3
Цитата Сообщение от Evg Посмотреть сообщение
А точно нет? (просто у меня нету 2008)
Точно. Компилятор выдает ошибку:
fatal error C1021: недопустимая команда препроцессора 'warning'
И в перечне команд препроцессора её нету
Может в #pragma ...
Сейчас читаю, пытаюсь разобраться
0
Evg
Эксперт CАвтор FAQ
19288 / 7147 / 528
Регистрация: 30.03.2009
Сообщений: 19,997
Записей в блоге: 30
28.07.2010, 14:15 4
А это Си\Си++ или уже что-то из .net?

Добавлено через 1 минуту
Странно конечно. Но можно завести локальную переменную

C
1
char *p = "предупреждение на будущее";
а компилятор будет выдавать предупреждение, что переменная не использована. Но это вариант через ж...у
0
FireNovel
150 / 73 / 27
Регистрация: 09.04.2010
Сообщений: 297
28.07.2010, 14:17  [ТС] 5
Приведу пример:
C++
1
2
3
4
5
6
7
8
#include <iostream>
 
void main()
{
    std::cout << "dkfj";
    #warning "Макрос DEBUG устаревший, надо заменять его на DEBUG_LEVEL"
    system ("pause");
}
ошибка та же
main.cpp(6) : fatal error C1021: недопустимая команда препроцессора 'warning'
Может я неправильно ее использую?
Evg, сам #warning взял из твоей статьи
0
ForEveR
В астрале
Эксперт С++
7995 / 4754 / 651
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
28.07.2010, 14:21 6
Аналогично в 2005

Error 1 fatal error C1021: invalid preprocessor command 'warning' c:\documents and settings\admin\мои документы\visual studio 2005\projects\перенос на ноут\warn\warn.cpp 2

В любом случае причем. Если писать #warning в начале программы полностью аналогичная ошибка.
0
Evg
Эксперт CАвтор FAQ
19288 / 7147 / 528
Регистрация: 30.03.2009
Сообщений: 19,997
Записей в блоге: 30
28.07.2010, 14:26 7
Вот ёлки зелёные... Оно даже в C# есть: http://msdn.microsoft.com/ru-ru/library/963th5x3.aspx
Как вариант попробуй, чтобы оно в начале строки находилось (а не с отступом в 4 пробела) или без кавычек

С другой стороны не у одного тебя такая трабла: http://www.rsdn.ru/forum/cpp.applied/2018572.flat.aspx
Короче говоря, тёмное дело какое-то
1
Nameless One
Эксперт С++
5786 / 3435 / 351
Регистрация: 08.02.2010
Сообщений: 7,448
28.07.2010, 14:32 8
Аналогично в Visual C++ 2010
0
Evg
Эксперт CАвтор FAQ
19288 / 7147 / 528
Регистрация: 30.03.2009
Сообщений: 19,997
Записей в блоге: 30
28.07.2010, 14:40 9
А в borland'е?
0
FireNovel
150 / 73 / 27
Регистрация: 09.04.2010
Сообщений: 297
28.07.2010, 14:44  [ТС] 10
Всем спасибо за попытки помочь
Таким образом, придется написать себе памятку в коментах
Снова МелкоМягкие какую-то фигню уткнули
0
Evg
Эксперт CАвтор FAQ
19288 / 7147 / 528
Регистрация: 30.03.2009
Сообщений: 19,997
Записей в блоге: 30
28.07.2010, 14:44 11
Сами микрософтеры советуют такой же приём, который описан по второй ссылке из поста #7
http://support.microsoft.com/kb/155196
0
Nameless One
Эксперт С++
5786 / 3435 / 351
Регистрация: 08.02.2010
Сообщений: 7,448
28.07.2010, 14:45 12
Цитата Сообщение от FireNovel Посмотреть сообщение
Всем спасибо за попытки помочь
Таким образом, придется написать себе памятку в коментах
Снова МелкоМягкие какую-то фигню уткнули
Используй #pragma message
1
fasked
Эксперт С++
4982 / 2561 / 241
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
28.07.2010, 14:46 13
FireNovel, я вообще никогда не слышал про препроцессорны #warning
пользуюсь вот такой вещью
C
1
#pragma message ("WARNING! Макрос DEBUG устаревший, надо заменять его на DEBUG_LEVEL")
1
Nameless One
Эксперт С++
5786 / 3435 / 351
Регистрация: 08.02.2010
Сообщений: 7,448
28.07.2010, 14:51 14
Evg, мне вот что-то отсюда не понятно, зачем нужен макрос __STR1__(x), и почему бы вместо него сразу не вызывать __STR2__(x)?
0
FireNovel
150 / 73 / 27
Регистрация: 09.04.2010
Сообщений: 297
28.07.2010, 14:54  [ТС] 15
Цитата Сообщение от Nameless One Посмотреть сообщение
Используй #pragma message
Да, я так и поступлю,
но на него(просто сообщение), действительно, внимание не особо обращается, а вот предупреждения глаза мусолят порядком
0
Evg
Эксперт CАвтор FAQ
19288 / 7147 / 528
Регистрация: 30.03.2009
Сообщений: 19,997
Записей в блоге: 30
28.07.2010, 15:02 16
Цитата Сообщение от fasked Посмотреть сообщение
пользуюсь вот такой вещью
В 90% случаев сообщение без привязки к исходнику бесполезно. Понятно, что find'ом всё можно найти, но непонятно, почему микрософтеры сделали сложным то, что у всех сделано просто

Цитата Сообщение от Nameless One Посмотреть сообщение
Evg, мне вот что-то отсюда не понятно, зачем нужен макрос __STR1__(x), и почему бы вместо него сразу не вызывать __STR2__(x)?
Чтобы сделать подстановку значения другого макроса в виде строки. Значение макроса __LINE__ - это по сути целое число (например, 21). Если вызывать непосредственно макрос __STR2__, то получим строку "__LINE__" вместо желаемого "21". В момент вызова STR1 у нас происходит замена __LINE__ на 21, а в момент вызова __STR2__ - замена 21 на "21". Надо будет про это в статью дописать
1
28.07.2010, 15:02
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.07.2010, 15:02

Visual studio 2008 C++
Вычислите сумму элементов верхнего правого треугольника матрицы и количество...

Visual Studio 2008
Здравствуйте.У меня студия 2010 (экспресс-версия) поставилась,но при запуске...

Множества Visual Studio 2008
Существует ли подобный способ в VS 2008, как в VS 2015, задания значение...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Опции темы

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