我认为这样可行。
typedef auto var;
但我收到错误:
error: typedef declared 'auto'
相反,它适用于任何其他关键字:
typedef int num;
为什么我收到错误?
答案 0 :(得分:18)
简单来说,这不是auto
的允许使用。 typedef
定义了类型的别名。 auto
不是一种类型;当在变量的声明中使用时,它是初始化器类型的替代。如果您能够typedef auto var;
,那么var
将不会是类型的别名。
答案 1 :(得分:0)
auto是类型修饰符,不是类型,因此不能是typedef'ed
答案 2 :(得分:0)
你不能这样做,因为 auto 不是一个真正的类型。
如果您想使用 var
而不是 auto
那么您可以这样做:
#define var auto
但是这样做会导致问题,因为在该行之后,代码中的每个 var
都将被替换为 auto
。包括包含的文件。例如
int var= 0;
将成为
int auto= 0;
这会破坏编译。
因此,如果您要走这条路,请记住在定义之前包含所有头文件。