Jaka jest różnica w stosowaniu nawiasów kątowych i cudzysłowach w includeinstrukcjach w językach programowania C i C ++ ? #include <filename> #include
Jaka jest różnica w stosowaniu nawiasów kątowych i cudzysłowach w includeinstrukcjach w językach programowania C i C ++ ? #include <filename> #include
Dlaczego preprocesor C w GCC interpretuje słowo linux(małe litery) jako stałą 1? test.c: #include <stdio.h> int main(void) { int linux = 5; return 0; } Wynik $ gcc -E test.c(zatrzymaj się po etapie przetwarzania wstępnego): .... int main(void) { int 1 = 5; return 0; } Co...
W wielu makrach C / C ++ widzę kod makra zawinięty w coś, co wydaje się pozbawioną znaczenia do whilepętlą. Oto przykłady. #define FOO(X) do { f(X); g(X); } while (0) #define FOO(X) if (1) { f(X); g(X); } else Nie widzę co do whilerobi. Dlaczego po prostu tego nie napisać? #define FOO(X) f(X);...
W C / C ++ / Objective C możesz zdefiniować makro za pomocą preprocesorów kompilatora. Co więcej, możesz włączyć / wyłączyć niektóre części kodu za pomocą preprocesorów kompilatora. #ifdef DEBUG // Debug-only code #endif Czy istnieje podobne rozwiązanie w
Kod taki widziałem zwykle na początku plików nagłówkowych: #ifndef HEADERFILE_H #define HEADERFILE_H A na końcu pliku jest #endif Jaki jest tego
Którego lepiej użyć i dlaczego w dużym projekcie: #if DEBUG public void SetPrivateValue(int value) { ... } #endif lub [System.Diagnostics.Conditional("DEBUG")] public void SetPrivateValue(int value) { ...
Przeglądam notatki z kursu języka C i każdy plik źródłowy programu w języku C zaczyna się od jednego #w pierwszym wierszu programu. Następnie są puste wiersze, a za nimi następna mainfunkcja, po której następuje funkcja. Jaki jest powód #? (Teraz jest poza terminem i naprawdę nie mogę zapytać...
Pracuję nad projektem, który ma dużo starszego kodu C. Zaczęliśmy pisać w C ++ z zamiarem ostatecznej konwersji starszego kodu. Jestem trochę zdezorientowany co do interakcji między C i C ++. Rozumiem, że poprzez owinięcie C kodu z extern "C"C ++ kompilator nie będzie Magiel C pseudonimów, ale nie...
Gdzie są MINi MAXzdefiniowane w C, jeśli w ogóle? Jaki jest najlepszy sposób na ich wdrożenie, tak ogólnie i bezpiecznie, jak to możliwe? (Preferowane są rozszerzenia / wbudowane kompilatory kompilatorów głównego
Jak zdefiniować zmienną preprocesora za pomocą CMake? Równoważny kod to #define
На этот вопрос есть ответы на Stack Overflow на русском : Как узнать список всех определённых макросов? Czy istnieje sposób, aby gcc / g ++ zrzucił definicje preprocesora z wiersza poleceń? Mam na myśli takie rzeczy __GNUC__, __STDC__i tak...
Tworzę aplikację, która przetwarza wrażliwe dane karty kredytowej. Jeśli mój kod działa w trybie debugowania, chcę zalogować te dane do konsoli i wykonać zrzuty plików. Jednak w ostatecznej wersji sklepu (tj. Gdy działa w trybie wydania) ważne jest, aby wszystko to było wyłączone (zagrożenie...
Piszę dziś moją pierwszą stronę z ostrzami, nie mogę wymyślić, jak wejść #if debug #else #endif Jak mogę wprowadzić preprocesor w maszynce do
Zastanawiałem się, czy ktoś mógłby mi wyjaśnić, co #pragma packrobi oświadczenie preprocesora, a co ważniejsze, dlaczego ktoś chciałby go użyć. Sprawdziłem stronę MSDN , która oferowała pewien wgląd, ale miałem nadzieję usłyszeć więcej od osób z doświadczeniem. Widziałem to już wcześniej w kodzie,...
Próba utworzenia makra, którego można użyć do drukowania komunikatów debugowania po zdefiniowaniu DEBUG, jak na przykład następujący pseudo kod: #define DEBUG 1 #define debug_print(args ...) if (DEBUG) fprintf(stderr, args) Jak można to osiągnąć za pomocą
Załóżmy, że mam plik źródłowy z wieloma dyrektywami preprocesora. Czy można zobaczyć, jak to wygląda po zakończeniu pracy
Chcę napisać makro w C, które akceptuje dowolną liczbę parametrów, a nie określoną liczbę przykład: #define macro( X ) something_complicated( whatever( X ) ) gdzie Xjest dowolna liczba parametrów Potrzebuję tego, ponieważ whateverjest przeciążony i można go wywołać z 2 lub 4...
Potrzebuję mojego kodu do robienia różnych rzeczy w zależności od systemu operacyjnego, na którym został skompilowany. Szukam czegoś takiego: #ifdef OSisWindows // do Windows-specific stuff #else // do Unix-specific stuff #endif Czy jest na to sposób? Czy istnieje lepszy sposób na zrobienie tego...
Jaki jest powód następującego ostrzeżenia w niektórych kompilatorach C ++? Brak nowego wiersza na końcu pliku Dlaczego powinienem mieć pustą linię na końcu pliku źródłowego /
Mam dwa makra FOO2i FOO3: #define FOO2(x,y) ... #define FOO3(x,y,z) ... Chcę zdefiniować nowe makro FOOw następujący sposób: #define FOO(x,y) FOO2(x,y) #define FOO(x,y,z) FOO3(x,y,z) Ale to nie działa, ponieważ makra nie przeciążają wielu argumentów. Bez modyfikacji FOO2i FOO3czy istnieje...