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ängen

    Was (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


Anmelden zum Antworten