Seite 1 von 1

memory.h nicht zu cmemory?

Verfasst: 14. November 2006 00:43
von uhu01
Hy!

Mal was anderes: C/C++ Basics.

Ich dachte bis heute das alle C System Header (stdio.h...) zu Headern mit dem Prefix "c" (cstdio) "umbenannt" wurden. Gleichzeitig wurden doch auch alle Funktionen dieser Header dem std:: Namespace hinzugefügt.

Da ich bei meinem neuesten Projekt auch mit einem CAN-Adapter arbeiten muss (Diplomarbeit), komme ich um ein bisschen arbeiten mit Arrays, und ein paar low-level (memset, memcpy) operationen nicht herum.

Ich includiere also "cmemory" und möchte std::memcpy benutzen.
Beim kompilieren -> Fehler

Sind beim "umbenennen" einige C-Header ausgelassen worden? Weis vielleicht jemand warum? Oder ist das nur bei mir so?

Ich nutze diesmal übrigens Visual Studio .Net 2003

mfg
uhu01

Verfasst: 14. November 2006 10:05
von -Marco-
memory.h ist ein veralteter C-Header und nur noch aus Kompatibilitätsgründen vorhanden. Wenn du in diesen mal reinschaust wird dir auffallen, daß dieser die string.h includiert.
Ergo, memcpy und Konsorten sind in der string.h deklariert, dh. du mußt die cstring nehmen.

Verfasst: 14. November 2006 10:31
von Christian81
Ich würde C nicht mit C++ verwechseln...
string.h - C
cstring - C++

Verfasst: 14. November 2006 12:13
von uhu01
Hy!

Erst mal danke für eure Antworten

@Marco Danke, hab ich schon gemacht

@Christian81 Danke, war mir klar, deswegen auch im Namespace und eben die Frage nach dem Header, da ich keine cmemory gefunden hatte.

mfg
uhu01