Muss ich Fälle behandeln, wenn ich mit memmove()
/memcpy()
als Grenzfälle actully nichts zu bewegen/kopierenKann ich memcpy() und memmove() mit "Anzahl der Bytes" auf Null setzen?
int numberOfBytes = ...
if(numberOfBytes != 0) {
memmove(dest, source, numberOfBytes);
}
oder sollte ich nenne nur die Funktion ohne
int numberOfBytes = ...
memmove(dest, source, numberOfBytes);
Überprüfung Ist das Prüfungs im ehemaligen schnipsel notwendig?
Frage erinnert mich ein bisschen auf Nullzeiger auf Funktionen wie kostenlos zu überprüfen. Nicht notwendig, aber ich würde einen Kommentar abgeben, um zu zeigen, dass Sie darüber nachgedacht haben. – Toad
@Toad: Welchen Zweck erfüllt das, außer den Code zu überladen?Wenn ich jemandes Code lese, muss ich nicht wissen, dass der ursprüngliche Programmierer "über diese Operation nachdachte, die eigentlich nicht notwendig ist, aber weil es unnötig ist, habe ich es nicht gemacht". Wenn ich sehe, dass ein Zeiger freigegeben wird, weiß ich, dass es Null sein darf, also muss ich die Gedanken des ursprünglichen Programmierers zum Thema "Soll ich nach Null suchen" nicht kennen. Und das gleiche gilt für das Kopieren von 0 Bytes mit 'memcpy' – jalf
@jalf: die Tatsache, dass es eine Frage auf stackoverflow ist, macht es etwas, das Leute zweifeln. Das Hinzufügen eines Kommentars kann Ihnen vielleicht nicht helfen, könnte aber jemandem mit weniger Wissen helfen – Toad