В этом примере с максимально обрезанным источником константа манифеста FOOBAR переопределяется. Это является преднамеренным, и в реальном случае имеется дополнительный код для использования каждого определения.
Прагма была добавлена, чтобы избавиться от предупреждающего сообщения, но затем появилась заметка, и я, похоже, не нашел способа избавиться от заметки.
Мне удалось изменить этот конкретный источник на #undef
между #define
, но я хотел бы знать, есть ли способ запретить ноту, не требуя #undef
, поскольку обрабатывается несколько констант так же.
#pragma warning( disable : 4005 ) // 'identifier' : macro redefinition
#define FOOBAR FOO
#define FOOBAR BAR
Баннер компилятора и выходные данные выглядят следующим образом
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8804 for 80x86
Copyright (C) Microsoft Corp 1984-1998. All rights reserved.
message.c
message.c(3) : note C6311: message.c(2) : see previous definition of 'FOOBAR'