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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
ninja2
814 / 188 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
#1

Что такое __pragma(warning()) ? - C++

11.07.2015, 19:04. Просмотров 296. Ответов 4
Метки нет (Все метки)

Вот код макроса:
C++
1
2
3
#define PTM_WARNING_DISABLE \
    __pragma(warning( push )) \
    __pragma(warning( disable : 4867 ))
Что эти функции делают? И что это за функция __pragma? От ее определение нельзя посмотреть?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.07.2015, 19:04
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Что такое __pragma(warning()) ? (C++):

Что такое stract pragma и union - C++
Учусь писать программки для микроконтроллеров, и в большинстве примеров используют эти штучки, пробовал гуглить, но до конца их сути так и...

О #pragma warning(disable: 4786) - C++
Вот создаю пустое приложение Win32 Console Application. Добавляю к примеру файл ex.cpp со следующим содержанием: #include <string> ...

Отключение предупреждений без "pragma warning" - C++
есть ли альтернативная функция или команда для # pragma warning(disable:....); которая отключает предупреждения

Что такое файловый буфер? Что такое режим (модификатор) доступа, при работе с файлами? - C++
Что такое файловый буфер? Что такое режим (модификатор) доступа, при работе с файлами?

Что такое рекурсивный тип данных? Что такое конструкция рекурсивного типа? - C++
Что такое рекурсивный тип данных? Что такое конструкция рекурсивного типа?

Что такое хэндлер файла? Что такое файловый указатель? - C++
Что такое хэндлер файла? Что такое файловый указатель?

4
DrOffset
7506 / 4502 / 1023
Регистрация: 30.01.2014
Сообщений: 7,362
11.07.2015, 19:10 #2
Цитата Сообщение от ninja2 Посмотреть сообщение
И что это за функция __pragma?
Это не функция, а директива препроцессора.
https://msdn.microsoft.com/ru-ru/library/2c8f766e.aspx
http://habrahabr.ru/company/abbyy/blog/136909/
1
ninja2
814 / 188 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
12.07.2015, 09:10  [ТС] #3
Цитата Сообщение от DrOffset Посмотреть сообщение
Это не функция, а директива препроцессора.
А директивы препроцессора это функции с двумя подчеркиваниями впереди?
0
0x10
2527 / 1707 / 257
Регистрация: 24.11.2012
Сообщений: 4,272
12.07.2015, 09:21 #4
Цитата Сообщение от ninja2 Посмотреть сообщение
А директивы препроцессора это функции с двумя подчеркиваниями впереди?
Директива — не функция, как уже было сказано выше.
В данном случае __pragma — ключевое слово, специфичное для майкрософтовского компилятора. Введено для того, чтобы можно было подставлять директивы препроцессора с помощью макросов.
https://msdn.microsoft.com/en-US/en-en/library/d9x1s805.aspx
1
ninja2
814 / 188 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
12.07.2015, 09:28  [ТС] #5
В общем этот worning используется для заглушки вывода ошибок, можно от так использовать:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
using std::cout;
 
__pragma(warning( disable : 4172 ))
__pragma(warning( disable : 4101 ))
 
int& f()
{
    int x;//C4101
    int y(10);
    return y;//C4172
}
 
int main()
{
    cout <<f()<<"\n";
 
    return 0;
}
и не будут выводится предупреждения
0
12.07.2015, 09:28
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.07.2015, 09:28
Привет! Вот еще темы с ответами:

Что такое заголовочный файл? Что такое файл исходного кода? Рассмотрите назначение каждого из них - C++
Что такое заголовочный файл? Что такое файл исходного кода? Рассмотрите назначение каждого из них пожалуйста.

[c++, msvc] #pragma suppress warning - C++
Всем привет. Вижал студия 2013. Рассмотрим код: http://rextester.com/FCO39975 //Title of this code //Compiler Version...

Объяснить что такое "раздельная компиляция", что такое "интерфейс класса" и "реализация класса" на примере - C++
Есть класс, содержащий объекты и конструктор. Конструктор объявляется в одном из cpp файлов(их несколько). Можно ли, как-то, использовать...

Что означает этот warning? - C++
warning: extended initializer lists only available with -std=c++0x or -std=gnu++0x Появляется когда я меняю это: pvertex.x =...


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

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

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