typedef char *b 是什么意思?

what does it mean typedef char *b?

我正在通读这段内存管理代码重载 operator new。有类似

的表达
typedef char *b

后来在代码中b是这样使用的:

b(h); //h is a pointer to some class;

h 定义在这里:

static Head* h= (Head*) HEAP_BASE_ADDRESS;

我假设当使用 b 时,它被认为是指向 char 的指针。但是指针怎么会有像 b() 这样的表达式呢?这里有某种转换吗?我可以理解为 b 现在与 h 具有相同的地址吗?

您发布的第一行代码是 typedef which creates an alias for char* as b. The second code line shows a functional-style type conversionhb

Can I understand it as b now is having the same address as h?

b 只是 char* 的一个别名,所以 b(h) 最终什么都不做,除非你像这样存储该表达式的结果:

b b_ptr = b(h); // equivalent to: char* b_ptr = ((char*)h);

函数式类型转换仅适用于单字类型名称,所以如果您想使用这种转换风格,例如一个指针,你必须先 typedef 它。 (这就是 typedef char *b 的原因。)这种转换方式可以用于像 int(3.14 + 6.67).

这样的表达式