我正在为我的编译器类编写一个C ++编译器,我想知道这一点。 等价typedef之间的算术因此,b / c typedef具有松散的名称等价:
typedef int FOO;
typedef int BAR;
int test;
FOO i;
BAR j;
i = 1;
j = 2;
test = i + j; // Code clarity
这应该有用吗? typedef真的只是美化基类型还是级联成层次结构?
答案 0 :(得分:2)
是的,这样可以正常工作,但是当你得到结构时要考虑这个案例。
答案 1 :(得分:1)
在C和C ++中,typedef声明定义了类型名称的别名。它没有定义新类型。编译器必须将每个typedef(如有必要,递归地)解析为不包含typedef名称的类型描述符。 (如果那不可能,那么程序就不是很好。)
因此FOO(1) + BAR(2)
不仅工作得很好,没有隐式转换,定义为FOO
的变量将在模板专业化中与int
匹配。