Próbuję wykonać tę pracę (w GCC 4.6) bez szczekania na mnie.Tymczasowo wyłącz ostrzeżenie gcc o ponownym zdefiniowaniu
#define FOO ""
#define BAR ""
#if ....
#define FOO "Foo, good sir"
#endif
#if ...
#define BAR "Bar, my lady"
#endif
....
#define EVERYTHING FOO BAR ...
będę mieć dużo z nich. Robiąc to w ten sposób, zamiast:
#if ...
#define FOO "Foo"
#else
#define FOO ""
#endif
Zapisuje dużo kodu i czyni go bardziej czytelnym. Ostrzeżenie to pojawia się:
ostrzeżenie: „FOO” zreformowanego [domyślnie włączona]
Czy istnieje sposób, aby wyłączyć to ostrzeżenie w kodzie dla tej konkretnej części? Znalazłem Diagnostic Pragmas, aby wyłączyć niektóre ostrzeżenia, ale nie jestem w stanie znaleźć ostrzeżenia (na tej liście Options to Request or Suppress Warnings), które należy tutaj wyłączyć.
Ktoś wie, jak to zrobić? Lub w inny sposób, aby uniknąć konieczności ich całkowitego usunięcia z pustymi ciągami znaków?
Można użyć '-WP, -w' wyłączyć [ostrzeżenia preprocesora] (http://gcc.gnu.org/onlinedocs/cpp/Invocation.html#Invocation) – osgx
To ostrzeżenie pochodzi od radzieckiego rosyjskim plik o nazwie "cccp.c" w gcc (wersja 2.95) i nie można go wyłączyć. Wciąż nie ma opcji, aby wyłączyć to ostrzeżenie indywidualnie [nawet w git head, gcc/libcpp/macro.c] (http://gcc.gnu.org/git/?p=gcc.git;a=blob;f= libcpp/macro.c; h = f3139590d5045b128709296d1abbb81753284f10; hb = HEAD # l2527) (i wiersz 2994 tego samego pliku) – osgx
@osgx jeśli nadasz temu komentarzowi odpowiedź, chciałbym to zaakceptować. –