ZeroMemory oder memset?



  • Hi,

    nur mal so aus Interesse: Nutzt ihr eher memset() oder ZeroMemory() zum "nullen"?
    Ein Grund für memset wäre die Kompatibilität zu anderen Plattformen (ich rede hier natürlich von WinAPI Projekten, aber kleine Teile könnten ja mal auf andere System portiert werden sollen).
    Ein Grund für ZeroMemory wäre dass man Abschnitte bei einem Übergang von C zu C++ besser übernehmen könnte (wenn ich das richtig sehe nutzt man in C++ kein memset.. bin da nicht so der Experte ;))

    Naja schreibt mal dazu was euch so einfällt 😃



  • ZeroMemory ist nur ein Makro und führt natürlich das Gleiche aus

    #define ZeroMemory RtlZeroMemory
    #define RtlZeroMemory(Destination,Length) memset((Destination),0,(Length))
    

    Ich persönlich nutze gleich memset.
    In Kombination mit C++-Klassen natürlich nie, sie sind Nicht-PODs oder könnten es eines Tages werden. Dafür gibt es dann die Konstruktoren.



  • cooky451 schrieb:

    Ein Grund für ZeroMemory wäre dass man Abschnitte bei einem Übergang von C zu C++ besser übernehmen könnte (wenn ich das richtig sehe nutzt man in C++ kein memset.. bin da nicht so der Experte ;))

    Natürlich nutzt man in C++ noch memset.

    Aber egal. Angenommen es wäre ganz viel pfui. Wieso sollte es dann weniger pfui sein, nur weil man die Funktion anders nennt? Das ergibt keinen Sinn.



  • Vicious Falcon schrieb:

    #define ZeroMemory RtlZeroMemory
    #define RtlZeroMemory(Destination,Length) memset((Destination),0,(Length))
    

    lol was sich die WINAPI-Designer dabei dachten 🤡


  • Mod

    wt??F! schrieb:

    lol was sich die WINAPI-Designer dabei dachten 🤡

    Die dachten sich, dass man damit eine Möglichkeit hat CRT freien Code zu schreiben. Man muss nämlich ZeroMemory nur umdefinieren oder eben in ene eigene Funktion überführen, oder es dem Compiler überlasasen (was später ja gemacxht wurde...)


Anmelden zum Antworten