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
Tekstowy procesor makr stosowany przed kompilacją programów w językach C i C ++. Ten tag może być również używany w przypadku pytań dotyczących innych kompilatorów / języków pochodzących z lub mających identyczne funkcje, takie jak #directives w Objective-C lub C #.
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);...
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
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...
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...
Zamknięte . To pytanie musi być bardziej skoncentrowane . Obecnie nie przyjmuje odpowiedzi. Chcesz poprawić to pytanie? Zaktualizuj pytanie, aby skupiało się na jednym problemie, edytując ten post . Zamknięte 2 lata temu . Popraw to pytanie...
W przeciwieństwie do Objective-C, Swift nie ma preprocesora, więc czy nadal istnieje sposób na ręczne wycofanie członków klasy? Szukam czegoś podobnego do tego: -(id)method
Jak mogę dodać warunek „lub” w #ifdef? Próbowałem: #ifdef CONDITION1 || CONDITION2 #endif To nie
Zakładając, że C ++ wspiera je kompilatora, czy jest jakiś szczególny powód nie do użytku __FILE__, __LINE__a __FUNCTION__do rejestrowania i celów debugowania? Przede wszystkim interesuje mnie podawanie użytkownikowi wprowadzających w błąd danych - na przykład zgłaszanie nieprawidłowego numeru...