Cbl*_*e X 0 c type-inference auto
我读过有关自动变量和局部变量的内容;我知道我可以使用auto来声明局部变量,但我知道我只能在没有auto关键字的情况下声明/定义局部变量。
我读到,在C11之前,auto关键字是无用的,而在C11之后,auto关键字现在具有类型推断功能。
我使用 C99,我注意到这个版本的标准没有类型推断属性,因为如果我有这行代码:
...
auto x;
printf("%d",sizeof(x));
...
Run Code Online (Sandbox Code Playgroud)
输出始终为 (4),即使使用 1.5 初始化“x”也是如此。
我的问题是,auto关键字在C11之前有相关用途吗?
并且,在C11之后, auto关键字的“类型推断”属性有什么好处?在C11之后使用auto相关或重要的地方在哪里?
提前致谢!!
C中的关键字auto
与C++中的含义不一样。C 中没有类型推断。在 C 中,auto
关键字意味着编译器决定变量应该存储在哪里。现代编译器通常会忽略它。
您所做的是声明一个没有类型的变量,因此大多数编译器会将其默认为int
. 当您这样做时,它是一个用值( )初始化的auto x = 1.5
类型变量,该值被截断为。(int)
1.5
double
1