我正在为 C 和 C++ 编写内存管理器。C 不支持函数重载,因此为了补偿重新定义 malloc,我使用了如下样式:
void * my_malloc(size_t size) {
void * p = malloc(size);
// Do additional stuff
...
}
#define my_malloc(x) malloc(x)
这让我malloc
用malloc(sizeof(type))
. 这行得通。但是,我也想在调用运算符时做一些事情,最好是在赋值操作发生之后。我知道 GCC 支持__attribute__((destructor))
.
所以我的问题是,有没有办法在调用运算符之前/之后执行函数(最好也传递参数)或者可以使用宏重新定义运算符?