modf als makro...



  • f64 floatpart(f64 value)
    {
        f64 i;
        return modf(value, &i);
    }
    
    f64 intpart(f64 value)
    {
        f64 i;
        modf(value, &i);
        return i;
    }
    
    #define FLOATPART(x) ???
    #define INTPART(x)   ???
    

    Die oberen Funktionen möchte ich so umschreiben, dass daraus Makros entstehen - da ich auf Wrapper-Funktionen verzichten will... Nur wie? mich stört immer die Variable i



  • Einfach keine Makros verwenden sondern die Funktionen so lassen wie sie sind...?

    oder aber i an das Makro uebergeben:

    extern f64 dummy;
    #define FLOATPART(x) (x)=modf((x), &dummy)
    #define INTPART(x)   (modf((x), &(x), (x))
    

    so in der art. ist aber sehr sehr haesslich und hat einige probleme die unnoetig sind. lass es als funktion wie es sich gehoert und gut ist.



  • probier mal so:

    #define FLOATPART(x) (x)-(f64)(long long)(x)
    #define INTPART(x) (f64)(long long)(x)
    

    🙂


Anmelden zum Antworten