收录日期:2020/10/30 23:39:01 时间:2016/07/19 20:29:24 标签:C语言
#include<stdio.h>
void print()
{
int i=0;
printf("i is :%d",i);
int c=22;
}
int main()
{
print();
printf("ssdfsfsf");
}

1>test.c(6) : error C2143: 语法错误 : 缺少“;”(在“类型”的前面)

这是为什么,哪里有问题?用的是vs2008,学c语言最好用什么编译器?通用性比较大的。
#include<stdio.h>
void print()
{
    int i=0;
    scanf("%d",&i);    看电影要入场券
    printf("i is :%d",i);
    int c=22;
}
int main()
{
    print();
    printf("ssdfsfsf");
}
这个呀 

#include <stdio.h>

两者之间空一格
没有发现什么问题啊?
是不是有全角的空格?
我拿你的代码编译是通过的
不过建议不要这样写代码
int i=0;
    printf("i is :%d",i);
    int c=22

变量声明尽量放在一起
#include<stdio.h>
也照样通过,一切正常的...
没看出那里不对地
#include<stdio.h>
void print()
{
    int i=0;
    printf("i is :%d",i); //如果是C语言,函数不能写在这里,放在int c=22;后面
    int c=22;
}
int main()
{
    print();
    printf("ssdfsfsf");
}
还真没发觉哪错了。。
引用 1 楼 lovesi3344 的回复:
#include <stdio.h>
void print()
{
    int i=0;
   scanf("%d",&i);    看电影要入场券
    printf("i is :%d",i);
    int c=22;
}
int main()
{
    print();
    printf("ssdfsfsf");
}


这是什么原因?而且问题还有。。。。

1>\vc6.0test\33.c(5) : warning C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>        c:\program files\microsoft visual studio 9.0\vc\include\stdio.h(306) : 参见“scanf”的声明
1>\vc6.0test\33.c(7) : error C2143: 语法错误 : 缺少“;”(在“类型”的前面)
按7L说的吧,我记得C语言是要将所有的变量都声明在前面的。
引用 2 楼 traceless 的回复:
这个呀

#include <stdio.h>

两者之间空一格

不是这个问题吧,改了问题照旧~
引用 3 楼 superly 的回复:
没有发现什么问题啊?
是不是有全角的空格?

我用gcc也没问题,vs2008才发现的。
刚开始用c,小白的很。。。
引用 7 楼 keiy 的回复:
#include <stdio.h>
void print()
{
    int i=0;
    printf("i is :%d",i); //如果是C语言,函数不能写在这里,放在int c=22;后面
    int c=22;
}
int main()
{
    print();
    printf("ssdfsfsf");
}


这可以解决问题,到底是什么原因?c标准规定的,还是是vs的标准,用gcc没问题的。
在标准c里面,所有变量声明要放在语句的前面;
另外,如果想学c的规范等,最好用tc2.0,它里面对格式以及细节的要求都比较严。
引用 12 楼 rabbii 的回复:
引用 3 楼 superly 的回复:
没有发现什么问题啊?
是不是有全角的空格?

我用gcc也没问题,vs2008才发现的。
刚开始用c,小白的很。。。

vs2005都能通过的,奇怪了
改成下面的……
warning C4996不用担心,详情可以看
http://topic.csdn.net/u/20071108/13/1E0D2D83-E621-4995-991D-EE2BC62B3CA8.html

#include<stdio.h>
void print()
{
    int i=0;
    int c=22;
    printf("i is :%d",i);
}
int main()
{
    print();
    printf("ssdfsfsf");
}
引用 13 楼 rabbii 的回复:
引用 7 楼 keiy 的回复:
 #include  <stdio.h>
 void print()
 {
     int i=0;
     printf("i is :%d",i); //如果是C语言,函数不能写在这里,放在int c=22;后面
     int c=22;
 }
 int main()
 {
     print();
     printf("ssdfsfsf");
 }



 这可以解决问题,到底是什么原因?c标准规定的,还是是vs的标准,用gcc没问题的。


C89标准的规定……
C99的新标准才支持变量不在语句块守定义,VS系列向来只支持C89
引用 7 楼 keiy 的回复:
#include <stdio.h>
 void print()
 {
     int i=0;
     printf("i is :%d",i); //如果是C语言,函数不能写在这里,放在int c=22;后面
     int c=22;
 }
 int main()
 {
     print();
     printf("ssdfsfsf");
 }

写哪都无所谓
是为了强调规范才要求把声明写在一起
这程序我用vc6.0编译通过没发现错误
引用 7 楼 keiy 的回复:
#include <stdio.h>
void print()
{
    int i=0;
    printf("i is :%d",i); //如果是C语言,函数不能写在这里,放在int c=22;后面
    int c=22;
}
int main()
{
    print();
    printf("ssdfsfsf");
}


up
讨论它没什么必要吧
#include<stdio.h>
void print()
{
     int i=0,c=22;
    printf("i is :%d",i);
}
int main()
{ print();
printf("ssdfsfsf");
}
学c语言最好用什么编译器?通用性比较大的。http://topic.csdn.net/u/20100124/22/714c446a-9cf8-49bf-ac31-4962f5f84d37.html?seed=600878977&r=62966540#r_62966540

C++版主开发的。
国外高校通用的。

你可以试一下
这个没有错误啊....

怎么这么多人说有错误呢..奇怪...
main()中忘了加 “return 0”了吧。。。
引用 22 楼 swliao 的回复:
这个没有错误啊....

 怎么这么多人说有错误呢..奇怪...

单从语法上说是完全没有错误的...
记得大学里老师说过一句,先定义,后语句。不知道指的是不是这个意思。
引用 7 楼 keiy 的回复:
#include <stdio.h>
void print()
{
    int i=0;
    printf("i is :%d",i); //如果是C语言,函数不能写在这里,放在int c=22;后面
    int c=22;
}
int main()
{
    print();
    printf("ssdfsfsf");
}


7楼正结.
C语言中的变量声明一定要放在所有的代码前.
引用 18 楼 huafoying 的回复:
引用 7 楼 keiy 的回复:
 #include  <stdio.h>
  void print()
  {
      int i=0;
      printf("i is :%d",i); //如果是C语言,函数不能写在这里,放在int c=22;后面
      int c=22;
  }
  int main()
  {
      print();
      printf("ssdfsfsf");
  }


 写哪都无所谓
 是为了强调规范才要求把声明写在一起
 这程序我用vc6.0编译通过没发现错误


您确定您的源文件是**.c
引用 27 楼 mstlq 的回复:
您确定您的源文件是**.c?

这个才是关键,如果后缀是.cpp,编译器就会按C++来编译,那就不会错了
如果是.c,就按C来编译,若不是gcc等支持c99的,不错才怪
*.c不同与*.cpp,*.c变量定义要放在函数的开头。

有《ASP.NET Web 站点高级编程 C#版》源码的朋友请进 大家好,请大家帮我个忙!万分感谢 求一字符串比较,简单,可俺不会. 如何在C#程序中执行“Create Database”SQL语句来创建数据库? 一个关于socket的小问题 初学C#,关于菜单绘制的问题。在线…… 如何控制stringgrid有的列可以编辑,有的列不能编辑?在线 我是新手,在单位要维护和开发基于lotus的办公系统,需要学习那些知识! 100分求解Ftp上传遇到的3个头痛的问题(我的分快没了,否则还可以加) VS.net的aspx页面编辑器的问题,代码会变动或者自动添加一些信息,如何解决? 怎样知道存储过程已经执行完毕? 各位高手:怎么实现留言板内容字体大小、颜色的变化? 请教嵌入式LINUX开发环境! 怎样查询最近一天的所有记录 如何解决表单重复提交的问题? 能否用JAVA画出颜色渐变,文字阴影,图形阴影等,谢谢 请问:如何编写一个用户验证确认系统??????????????? 错误的。。。。等待! 请问哪里有JAVASCRIPT比较全面比较经典的书??? 如何在Tomcat中同时运行两个Web application? db-library:如何插入binary类型的数据,应为dbcmd的第二个参数是char*型,怎样组成sql语句呀?急急急!!! stream的属于哪个命名空间?在线等 救命啊!菜鸟快不行了! 关于热键Ctrl、Shift、Alt、Win键拦截 用DBNavigator控键,删除数据的时候自动提示confirm,问是否删除,如何屏蔽? 请问如何用MSXML生成如下的XML模式文件? 有人知道什么是所见即所得吗? 第一次在Oracle中写触发器,请求帮助! 一个概念问题,大家来帮忙,来者有分!!! 嗯,非常开阔眼界的视频教程,有空的话不妨看看