Czy istnieje sposób osadzenia instrukcji pragmy w makrze z innymi instrukcjami? Próbuję osiągnąć coś takiego: #define DEFINE_DELETE_OBJECT(type) \ void delete_ ## type_(int handle); \ void delete_ ## type(int handle); \ #pragma weak delete_ ## type_ = delete_ ## type Nie ma problemu z rozwiązaniami doładowania (z wyjątkiem fali), jeśli takie …
Próbuję dowiedzieć się, jak mogę połączyć #define„d int z #defineciągiem” za pomocą preprocesora C. Mój kompilator to GCC 4.1 na CentOS 5. Rozwiązanie powinno również działać dla MinGW. Chciałbym dołączyć numer wersji do łańcucha, ale jedynym sposobem, w jaki mogę go uruchomić, jest zrobienie kopii numeru wersji zdefiniowanego jako ciągi. …
Jak wspomniano w wielu moich poprzednich pytaniach, pracuję przez K&R i obecnie używam preprocesora. Jedną z bardziej interesujących rzeczy - czymś, czego nigdy wcześniej nie wiedziałem z żadnej z moich poprzednich prób nauki C - jest ##operator preprocesora. Według K&R: Operator preprocesora ## umożliwia konkatenację rzeczywistych argumentów podczas rozwijania makr. …
Przynajmniej niektóre preprocesory języka C pozwalają na zdefiniowanie wartości makra, a nie jego nazwy, poprzez przekazanie go przez jedno makro podobne do funkcji do drugiego, które je określa: #define STR1(x) #x #define STR2(x) STR1(x) #define THE_ANSWER 42 #define THE_ANSWER_STR STR2(THE_ANSWER) /* "42" */ Przykładowe przypadki użycia tutaj . To działa, …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.