macros

    8Ciepło

    4Odpowiedz

    Jestem ciekaw, dlaczego widzę prawie wszystkie makra C sformatowane tak: #ifndef FOO # define FOO #endif Albo to: #ifndef FOO #define FOO #endif Ale nigdy tak: #ifndef FOO #define FOO #e

    19Ciepło

    6Odpowiedz

    w C, jaki jest właściwy sposób zdefiniowania makra podobnego do printf, który będzie drukowany tylko po zdefiniowaniu symbolu DEBUG? #ifdef DEBUG #define DEBUG_PRINT(???) ??? #else #define DEBUG_PR

    7Ciepło

    6Odpowiedz

    Jestem nowy dla emacsa, ale zszokowany tym, co naprawdę mogę zrobić i ile czasu to oszczędza (makra oszczędzają DUŻO czasu). Zastanawiam się jednak, czy można tworzyć skrypty oparte na krokach, w któr

    8Ciepło

    7Odpowiedz

    #ifndef NULL #define NULL NULL #endif Ten kod jest kompilowany w gcc bez ostrzeżeń/błędów. Czy ktoś może wyjaśnić, co robi preprocesor?

    15Ciepło

    3Odpowiedz

    Czy istnieje sposób sprawdzenia równości liczbowej w makrach? chcę zrobić coś jak #define choice 3 #if choice == 3 .... #endif #if choice == 4 ... #endif makr Czy w C posiada wsparcie dl

    9Ciepło

    3Odpowiedz

    Przeczytałem ten fragment makra (kod C) i pomyliłem go przy dekodowaniu, aby wiedzieć, co on definiuje. Co to definiuje? #define sram (*((unsigned char (*)[1]) 0)) -AD

    8Ciepło

    3Odpowiedz

    Zauważyłem, że czasami C makra są zapisywane jako coś takiego: #define foo(bar) ({ ++bar; }) Po kilku eksperymentach, znalazłem, że: ({}); skompiluje, ale nic nie robią. (Zgodnie z oczekiwaniami) Po

    15Ciepło

    2Odpowiedz

    Właśnie zacząłem grać z makrami w IntelliJ. Nagrałem kilka, a następnie odtwarzałem, aż zdecydowałem się dodać skróty klawiaturowe do moich makr. Poszedłem do Ustawień i wcisnąłem Alt + C, aby dodać n

    7Ciepło

    2Odpowiedz

    Przy pomocy makr C/C++ generowanie długich konstrukcji jest dość łatwe. Na przykład, jeśli chcę ogromny zbiór metod nie zawsze generują wyjątki (pleśń dla metod COM narażonych) mogę zrobić coś takiego

    12Ciepło

    6Odpowiedz

    , że potrzebny jest sposób, aby zdefiniować FLAGS_IF makro (lub odpowiednik), tak, że FLAGS_IF(expression) <block_of_code> FLAGS_ENDIF przy zestawianiu w debugowania (np danego przełącznika kompil