假设我在标题中声明了一个全局变量:
extern long global_var;
让编译器在源中定义变量时推断出类型是合理的:
auto global_var;
我至少看到一些专业人士:
类似可以用于类的静态成员。
但目前看来似乎不太可能。是否有超过这些好处的缺点?
答案 0 :(得分:1)
避免必须记住global_var
的类型名称并且仍然为编译器获得正确类型的一种方法是使用decltype
。
extern int global_var;
...
decltype(global_var) global_var;
这种方法的唯一缺点是你必须在定义之前将变量的声明提供给编译器。
当然,它也适用于类的static
成员变量。
在http://ideone.com/W1WToV处查看它。
答案 1 :(得分:0)
您可以为全局使用全局类型:
using global_var_type = long;
extern global_var_type global_var;
然后
global_var_type global_var;
如果更改类型,则无需重新编辑(当然,您必须重新编译)