OVH Cloud OVH Cloud

FillMemory() vs memset()

3 réponses
Avatar
Caliban
Bonjour

Question sans importance, et en espérant que ça déclenche pas un fil
interminable (j'ai pas dit "inter-minables" ;-) ) : pour une appli
Windows, quels sont les avantages à utiliser FillMemory() / ZeroMemory /
CopyMemory / MoveMemory() par rapport aux fonctions standard memset() /
memcpy() / memmove() ?

Question identique pour memset() et setmem(), même si ça devient hors sujet.

3 réponses

Avatar
Dominique Vaufreydaz
Bonjour,

Question sans importance, et en espérant que ça déclenche pas un fil
interminable (j'ai pas dit "inter-minables" ;-) ) : pour une appli
Windows, quels sont les avantages à utiliser FillMemory() /
ZeroMemory / CopyMemory / MoveMemory() par rapport aux fonctions
standard memset() / memcpy() / memmove() ?

Question identique pour memset() et setmem(), même si ça devient hors
sujet.



Je dirais portabilité et dans certains cas baisse de performance (notemment
au niveau des sockets si on utilise le select...).

Donc perso, comme une grosse majortie de mon code se doit d'etre
portable (a l'interface graphique pret), je n'utilise que les functions
unix-like.

Doms.
Avatar
Christian ASTOR
Caliban wrote:

Question sans importance, et en espérant que ça déclenche pas un fil
interminable (j'ai pas dit "inter-minables" ;-) ) : pour une appli
Windows, quels sont les avantages à utiliser FillMemory() / ZeroMemory /
CopyMemory / MoveMemory() par rapport aux fonctions standard memset() /
memcpy() / memmove() ?



C'est la même chose (#define)
Avatar
Arnold McDonald \(AMcD\)
C'est strictement les mêmes. Regarde dans Winbase.h et winnt.h :

#define FillMemory RtlFillMemory

NTSYSAPI
VOID
NTAPI
RtlFillMemory (
VOID UNALIGNED *Destination,
SIZE_T Length,
BYTE Fill
);

et en dessous :

#define RtlFillMemory(Destination,Length,Fill)
memset((Destination),(Fill),(Length))

Disons qu'un nom "fait" plus Windows, l'autre C...

--
Arnold McDonald (AMcD) - Help #39/2006

http://arnold.mcdonald.free.fr/