C语言 error C2143: 语法错误 : 缺少“;”(在“类型”的前面)?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言 error C2143: 语法错误 : 缺少“;”(在“类型”的前面)?相关的知识,希望对你有一定的参考价值。

反复查找应该是void gotoxy(man.x,man.y);这个语句的问题,不太会用,也不知道怎么改,求高手指导。
程序如下:
#include"stdio.h"
#include"conio.h"
int main()

struct move_point

int x,y;
int xv,yv;
man;
long p;
man.x=20;man.y=20;
man.xv=1;man.yv=1;

p=100000000;
while(p--)

if(p%50000)
continue;
void gotoxy(man.x,man.y);
printf(" ");
man.x+=man.xv;
if(man.x<10)
man.x=10;man.xv*=-1;
else if(man.x>70)
man.x=70;man.xv*=-1;
man.y+=man.yv;
if(man.y<10)
man.y=10;man.yv*=-1;
else if(man.y>70)
man.y=70;man.yv*=-1;
void gotoxy(man.x,man.y);
printf("%c\b",2);

getch();
return 0;

和上面一样的
#include"stdio.h"
#include"conio.h"
int main()

int x,y;
int xv,yv;
long p;
x=20;y=20;
xv=1;yv=1;

p=100000000;
while(p--)

if(p%50000)
continue;
void gotoxy(x,y);
printf(" ");
x+=xv;
if(x<10)
x=10;xv*=-1;
else if(x>70)
x=70;xv*=-1;
y+=yv;
if(y<10)
y=10;yv*=-1;
else if(y>70)
y=70;yv*=-1;
void gotoxy(x,y);
printf("%c\b",2);

getch();
return 0;

count 声明位置错了,纯c中声明变量全部放在main函数里,最前面的位置,要么vc6.0会报错。

修改:

拓展资料:

C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

C语言是一门面向过程的计算机编程语言,与C++,Java等面向对象的编程语言有所不同。

其编译器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。

参考技术A C语言编译时,如果出现了一条新的语句,但是上一语句又没有用分号结尾,就会报这个错误。

比如,在C语言中,要求每种变量定义,必须为一个独立语句,如
int a,b;
char c;
等。
如果写作
int a,b //注意这里少了一个分号。
char c;
在编译的时候就会报这个错误。

不过,编译器给出的建议并不是绝对准确的,有时也会误报,具体如何修改,是否只是在前面一句结尾加上分号就可以,还需要根据代码上下文及其要达到的目的,进行具体分析。
参考技术B void gotoxy(man.x,man.y)
前面把void去掉追问

去掉会出现别的错误。warning C4013: “gotoxy”未定义;假设外部返回 int

追答

gotoxy是TC的函数。在VC下这样处理。
http://wuxie001.blog.163.com/blog/static/13543500720105207946713/

本回答被提问者采纳
参考技术C 调用的时候不要加void
continue;
void gotoxy(man.x,man.y); <=== void去掉
printf(" ");

man.y=70;man.yv*=-1;
void gotoxy(man.x,man.y);<=== void去掉
printf("%c\b",2);追问

去掉会出现别的错误。warning C4013: “gotoxy”未定义;假设外部返回 int

追答

warning只是警告,不是错误没关系的

参考技术D 预防错误去染什么预防错误去染什么

vs2012 MinGW编译ffmpeg 出现libavdevice/avdevice.c(38) : error C2059: 语法错误:“.”

利用vs2012编译ffmpeg出现以下错误:

  libavdevice/avdevice.c(38) : error C2059: 语法错误:“.”
  libavdevice/avdevice.c(40) : error C2059: 语法错误:“,”
  libavdevice/avdevice.c(42) : error C2059: 语法错误:“,”
  libavdevice/avdevice.c(44) : error C2059: 语法错误:“,”
  libavdevice/avdevice.c(46) : error C2059: 语法错误:“,”
  libavdevice/avdevice.c(48) : error C2059: 语法错误:“,”
  libavdevice/avdevice.c(50) : error C2059: 语法错误:“,”
  libavdevice/avdevice.c(52) : error C2059: 语法错误:“,”
  libavdevice/avdevice.c(54) : error C2059: 语法错误:“,”
  libavdevice/avdevice.c(56) : error C2059: 语法错误:“}”
  libavdevice/avdevice.c(85) : fatal error C1903: 无法从以前的错误中恢复;正在停止编译
  make: *** [libavdevice/avdevice.o] Error 2

原因是avdevice.c 38行那段代码属于c99规范,vs2012只支持到c89,解决的方法是在C:\\MinGW\\msys\\1.0\\bin

下添加c99conv.exe以及c99wrap.exe文件,C:\\MinGW\\msys\\1.0\\bin需要添加在系统的环境变量Path。另外注意

检查ffmpeg configure文件,确定c99wrap.exe cl被执行,详细见下图:

      图1 ffmpeg configure截图

      如有问题加群流媒体/Ffmpeg/音视频 127903734 交流,exe文件可以在群里下载。

 

视频下载地址:http://www.chungen90.com/?news_33/

 Demo下载地址: http://www.chungen90.com/?news_34

以上是关于C语言 error C2143: 语法错误 : 缺少“;”(在“类型”的前面)?的主要内容,如果未能解决你的问题,请参考以下文章

error C2143: syntax error : missi 是啥错误?

C语言问题,error C2143: syntax error : missing ';' before 'type'啥意思?

error C2143: 语法错误 : 缺少“;”(在“&”的前面)

MFC error C2143: 语法错误 : 缺少“;”(在“*”的前面)

error C2143: 语法错误 : 缺少“;”(在“return”的前面)是怎么回事?

VS编译错误:error C2143: 语法错误 : 缺少“;”(在“类型”的前面)