【C】error C2143: 语法错误 : 缺少“;”(在“类型”的前面)
来源:互联网 发布:截面数据的例子 编辑:程序博客网 时间:2024/06/01 08:24
在纯C环境下写程序,分分钟让你怀疑,自己到底会不会写程序的,太多常用库和类都不能用,甚至一些惯有的“随意表达”,分分钟都是错的。
我只想在VS写个纯C练练手,应该说是在.cpp写完,觉得这段代码还可以,符合标准纯C环境,改成.c看看是否能运行,万万没想到的是,这段这么简单的代码,连个刚学C语言,甚至是文科专业选修C语言的童鞋都看得懂得的代码:
#include<stdio.h>void main(){int a=1;printf("%d",a);int b=2;printf("%d",b);}居然在.cpp过得了编译,手贱将其改成.c之后,他丫的vs2010居然给我报这样的错:
然后我瞪大我的钛合金狗眼,好好找找今天是不是这么不在状态,连个分号,都没打上去,但明明第5行,那个int b=2;,可以理解成2b,后面就是有个分号。
然后告诉我b未声明标识符?喂,???,分号我看不清楚,但你这个b之前明明有个int,三个英文???
此处应有暴漫表情,你他妈是在逗我?
之前那个莫名其妙的警告,《【C】将m~n之间的素数输出与VS2005以上版本对C语言的scanf的警告warning C4996》(点击打开链接),能过编译、能正常运行也就算了,C语言抽风也不是一天,现在你居然这么简单的程序都不给我过编译。
实质上,纯c要求局部变量定义必须在函数或局部空间的开头,然后才能有其他语句。纯c确实对变量声明的位置有要求,c++却可以随用随定义的。 说明vs是严格执行了纯C的标准。变量任意定义是C99的标准。这是C89的标准,C99也没有这个限制。问题是微软拒绝支持C99(包括VS2012),一股当年IE6的作风。可以用/tp参数把程序作为C++代码编译,就可以通过了。或者,根本没有这么麻烦,将int b拉到最顶,就没事了。
就是要你完成所有局部变量的定义,你才能写代码。如下代码,就半点问题没有了:
#include<stdio.h>void main(){int a=1;int b=2;printf("%d",a);printf("%d",b);}如下图所示:
0 0
- 【C】error C2143: 语法错误 : 缺少“;”(在“类型”的前面)
- error C2143:语法错误 : 缺少“;”(在“类型”的前面)的解决方案
- error C2143: 语法错误 : 缺少“;”(在“类型”的前面)
- VS2008:error C2143: 语法错误 : 缺少“;”(在“类型”的前面)
- error C2143: 语法错误 : 缺少“;”(在“类型”的前面)
- VS2012 error C2143: 语法错误 : 缺少“;”(在“类型”的前面)
- error C2143: 语法错误 : 缺少“;”(在“类型”的前面)
- error C2143: 语法错误 : 缺少“;”(在“类型”的前面)
- error C2143:语法错误:缺少";"(在“类型”的前面)
- error C2143: 语法错误 : 缺少“;”(在“类型”的前面)
- error C2143: 语法错误 : 缺少“)”(在“&”的前面)
- error C2143: 语法错误 : 缺少“;”(在“{”的前面)
- error C2143: 语法错误 : 缺少“;”(在“*”的前面)
- error C2143: 语法错误 : 缺少“;”(在“{”的前面)
- error C2143: 语法错误 : 缺少";"(在"*"的前面)
- error C2143 语法错误 缺少“;”(在“”的前面)
- error C2143: 语法错误 : 缺少“;”(在“*”的前面)
- error C2143: 语法错误 : 缺少“;”(在“*”的前面) error C4430: 缺少类型说明符
- javaFX 提示框
- 网络视频网站个个都想转型
- 组播,单播,广播,多播,泛洪的概念
- 新浪支付接口对接的总结
- 浅析JQuery中的html(),text(),val()区别
- 【C】error C2143: 语法错误 : 缺少“;”(在“类型”的前面)
- MYSQL \G 用法:查询结果按列打印
- ASM(Active Shape Model)主动形状模型通俗易懂讲解二:建模
- mysql磁盘空间碎片回收
- Laya ui 控件
- 疯狂的程序员 语录
- sqlserver,一个自定义函数(提取字符串中的数值,包含0-9和‘.’)
- Linux作为Oracle数据库服务器时的/etc/sysctl.conf的权限
- UICollectionView实现瀑布流布局