Struct schnell leeren?



  • Shade Of Mine schrieb:

    ZeroMemory ist ein Makro aus der Winapi:

    #define ZeroMemory(p,s) memset(p, 0, s)
    

    ist deine winapi kaputt? bei mir ist das ne funktion aus der kernel32.dll

    vorteile von memset:
    - ist intrinsic
    - kann also bei kleinen feldern zu REPNE STOSB und konsorten gut umgewandelt werden
    - kann von alignment gut profitieren

    memset ruft bei größeren feldern (oder feldern mit für den compiler unbekannter größe) feine handoptimierte assembler-funktion auf.

    vorteil von ZeroMemory:
    es steht nicht im eigenen programm, dadurch wird es etwas kleiner.

    könnte natürlich sein, daß heute die memset bei großen oder unbekannten feldern die Zeromemory aufruft, dann wäre das makro ok.



  • volkard schrieb:

    Shade Of Mine schrieb:

    ZeroMemory ist ein Makro aus der Winapi:

    #define ZeroMemory(p,s) memset(p, 0, s)
    

    ist deine winapi kaputt? bei mir ist das ne funktion aus der kernel32.dll

    ZeroMemory gibts öfter
    --> #define ZeroMemory(pb,cb) memset((pb),0,(cb))
    --> #define ZeroMemory RtlZeroMemory


Anmelden zum Antworten