In the bstring library the header defines the following:
#ifndef bstr__alloc
#define bstr__alloc(x) malloc(x)
#endif
#ifndef bstr__free
#define bstr_free(p) free(p)
#endif
What is the use of such definition? Why not use malloc and free directly?
EDIT1: One disadvantage is that you cannot directly check the call, because you have to go to the macro first. By the time you see the definition, you have lost sight of the actual arguments. Makes reviewing more difficult than necessary.
Kind regards, Guus.