Je lis le code source de allocateur mémoire Hoard, et dans le fichier de gnuwrapper.cpp, il y a le code suivantmacros A dans le langage C (#define)
#define CUSTOM_MALLOC(x) CUSTOM_PREFIX(malloc)(x)
Quel est le sens de CUSTOM_PREFIX(malloc)(x)
? est CUSTOM_PREFIX
une fonction? Mais en tant que fonction, elle n'a été définie nulle part. Si c'est variable, alors comment pouvons-nous utiliser une variable comme var(malloc)(x)
?
Code Plus:
#ifndef __GNUC__
#error "This file requires the GNU compiler."
#endif
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <malloc.h>
#ifndef CUSTOM_PREFIX ==> here looks like it's a variable, so if it doesn't define, then define here.
#define CUSTOM_PREFIX
#endif
#define CUSTOM_MALLOC(x) CUSTOM_PREFIX(malloc)(x) ===> what's the meaning of this?
#define CUSTOM_FREE(x) CUSTOM_PREFIX(free)(x)
#define CUSTOM_REALLOC(x,y) CUSTOM_PREFIX(realloc)(x,y)
#define CUSTOM_MEMALIGN(x,y) CUSTOM_PREFIX(memalign)(x,y)
Les chevrons apparaîtront très bien dans le code et le texte si vous formatez le code avec le bouton 1010 au-dessus de la zone d'entrée de texte. –
merci beaucoup pour Neil. stackoverflow est tellement cool, beaucoup de gens sont prêts à aider les autres, c'est incroyable que ma question ait reçu une réponse en quelques minutes. – Daniel