所以,我在阅读 libsystemd 的源代码时发现了这一行,我认为这只能是某种晦涩难懂的诡计。
请有人解释一下。
就是这一行,因此您无需打开链接即可阅读。
device = new(sd_device, 1);
其中 device
是在之前声明的,因为 sd_device *device;
并且 sd_device
是一种类型。
new
是一个宏,其中 sd_device
中的 type
device = new(sd_device, 1);
用作 sizeof(sd_device)
:
#define new(t, n) ((t*) malloc_multiply(n, sizeof(t)))