frage zu eine makro
-
hallo,
ich bin eigentlich pascal-programmierer, aber hab aufgrund von header-files für die libs unter linux allerdings mit recht viel mit c zu tun.
vielleicht kann mit jemand erklären (oder in pascal-coder schreiben), was das folgende makro in c bedeutet:#define MAD_F(x) ((signed int) (x##L))
vielen dank!
gruß, dmx.
-
## fügt zusammen:
#define MAD_F(x) ((signed int) (x##L)) MAD_F(100); //wird zu ((signed int) 100L)) MAD_F(gaga); //wird zu ((signed int) gagaL))
-
Semantik:
Will man eine long-Konstante angeben, so muss man ihr das Sufix L bzw. l anhängenWas (signed int) bewirkt kann ich dir net sagen - mein Halbwissen dazu: Der Long Wird in einen signed int Konvertiert - ich glaube die niederwertigsten Bits vom Long werden übernommen - die höchstwertigen Bits, die gegebenenfalls nicht mehr rein passen, werden verworfen