@gulain : j'ai aussi fait des tests en mettant des -O et je crois que tel est présenté le programme ci-dessus, ma version était toujours légèrement plus rapide.
En revanche, j'ai essayé de faire...
Type: Messages; Utilisateur: Bktero
@gulain : j'ai aussi fait des tests en mettant des -O et je crois que tel est présenté le programme ci-dessus, ma version était toujours légèrement plus rapide.
En revanche, j'ai essayé de faire...
Comme je suis un peu un bouledogue, j'ai utilisé gproof pour la 1ère fois de ma vie (il en existe une version Windows dans les MinGW binutils d'ailleurs).
J'ai fait le programme suivant :
...
J'y connais pas grand chose en assembleur alors impossible pour moi de comprendre pourquoi autant de lignes avec 3 sauts est plus efficace que moins de lignes avec 2 sauts. :(
J'ai fait une version "Kernighan and Ritchie compliant" encore plus courte :
void* bktero_memset(void *s, int c, size_t n)
{
while (n>0)
*( (char*)s + n-- -1 ) = (char)c;
return...
J'ai modifié ta fonction en ça :
void *memset(void *s, int c, size_t n)
{
char *m = (char*) s;
size_t i = 0;
while (i < n)
{
Je ne vois pas trop l'intérêt de ce code, comme ça au saut du lit...
En revanche, je suis carrément sûr que tu ne voulais pas écrire : c = m;
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.