Portál AbcLinuxu, 1. června 2025 03:00
#define EXAMPLE(x) st( EX = 1; )kde EX je navíc prvek struktury. Mohl by mi někdo zkušenější objasnit, o co jde. Díky
x
, který nepoužívá.
#define EXAMPLE_OFF(x) st( (x) = EX; EX = 0; )
#define st(x) {x} #define a(a) st( a = 1; ) int main(void){ int a = 5; a(a); .... }pak by to smysl dávalo
gcc -E
').
EXAMPLE(foo)s jakýmkoli (jedním) argumentem foo expanduje na
st( EX = 1; )To je celé, nic více ani nic méně to nedělá. Pak tam samozřejmě mohou být jiné věci, které něco dělají, jako st a EX, ale o těch nic nevíme. Je zapotřebí si buď ty definice projít všechny, nebo použít gcc -E, jak radí Michal.
st( EX = 1; )není příliš validní výsledek pro kompilaci, ale ono to skutečně expanduje ještě dál...je to truchu zamotané a trvalo mi, než sem se v tom zorientoval...teď už se v tom docela orientuji.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.