visual studio 2008 c++如何声明auto变量?

autoi;这句代码在VS2010里没报错,却在VS2008报错。这是为什么?怎样才能在VS2008里声明的时候消去报错?... auto i;
这句代码在VS2010里没报错,却在VS2008报错。这是为什么?怎样才能在VS2008里声明的时候消去报错?
展开
 我来答
tbyang2011
2013-02-25 · TA获得超过681个赞
知道小有建树答主
回答量:778
采纳率:50%
帮助的人:334万
展开全部
vs2010 Help:
The auto keyword is a declaration specifier. However, the C++ standard defines an original and a revised meaning for this keyword.
Before Visual C++ 2010, the auto keyword declares a variable in the automatic storage class; that is, a variable that has a local lifetime.
Starting with Visual C++ 2010, the auto keyword declares a variable whose type is deduced from the initialization expression in its declaration.

大意是: vs2010之前, auto 关键字用于声明一个自动存储类型的变量, 即具有局部生存周期的变量, 通常被省略. 从vs2010起, auto 关键字用于声明一个变量, 其类型由其初始化表达式确定。
在vs2008中, 你试一试在函数内部使用 auto,会发现不会报错, 而全局变量用auto会报错。

避免报错似乎可以
#define auto int
你可以试一试.
追问
“在vs2008中, 你试一试在函数内部使用 auto,会发现不会报错, 而全局变量用auto会报错。”我试了,你这句话并不正确啊。
追答
我只测试了vc6,  在函数内部使用 auto,会发现不会报错, 而全局变量用auto会报错.
根据 "Before Visual C++ 2010, the auto keyword declares a variable in the automatic storage class. "
我判断在vs2008中情况与在 vc6中相同。
你再测试一下吧。 可能是我判断错误。
ylx199009syf
2013-02-25 · 超过14用户采纳过TA的回答
知道答主
回答量:34
采纳率:0%
帮助的人:32.8万
展开全部
auto是存储类型标识符,表明变量(自动)具有本地范围,块范围的变量声明(如for循环体内的变量声明)默认为auto存储类型。所以你声明的时候应该是auto int i;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式