2010-03-11 3 views

ответ

6

Вы можете использовать #pragma warning, как показано на этой MSDN странице:

#pragma warning(disable: 4995) 

Или, вы можете включить предупреждение от для всего проекта в свойствах проекта (справа проект клик -> Свойства -> C/C++ -> Дополнительно -> Отключить конкретные предупреждения). В командной строке вы можете добиться такого же эффекта, используя /wd4995.

+0

Каким-либо другим способом они могут быть отключены от кода или настроек? Спасибо. –

+2

@Tommy: компилятор получает два входа: набор аргументов командной строки и исходные файлы. Если вы хотите сказать ему что-то сделать, вы должны сделать это в одном из этих двух мест. –

11

В дополнении к вышесказанному ответу, стоит отметить, что часто хорошая практика, чтобы только отключить предупреждение в ограниченном объеме (это особенно важно, если вы размещение этих прагм в заголовочных файлах):

#pragma warning (disable : 4121) // alignment of a member was sensitive to packing 

#include <third-party-header.h> 

#pragma warning (default : 4121) // Restore default handling of warning 

Другой способ сделать это - использовать механизм push/pop. Это может быть удобно, если вам нужно отключить кучу предупреждений в заголовочных файлах третьих лиц:

#pragma warning(push) 
#pragma warning(disable: 4018) // signed/unsigned mismatch 
#pragma warning(disable: 4100) // unreferenced formal parameter 
#pragma warning(disable: 4512) // 'class' : assignment operator could not be generated 
#pragma warning(disable: 4710) // 'function' : function not inlined 
#pragma warning(disable: 4503) // decorated name length exceeded, name was truncated 

#include <third-party-header1.h> 
#include <third-party-header2.h> 
#include <third-party-header3.h> 
#include <third-party-header4.h> 

#pragma warning(pop) 
+3

Просто обратите внимание, что вы также можете отключить несколько предупреждений в одной директиве препроцессора: '#pragma warning (disable: 4018 4100)'. Это было сказано, я, как и вы, объяснял причину отключения каждого предупреждения рядом с ним. –

Смежные вопросы