2 g1336032 g1336032 于 2016.03.14 15:24 提问

VC6.0中C与C++的不同之处

今天遇到一个情况,实在想不通。
这段代码在VC6.0的.c中错误提示【error C2143: syntax error : missing ';' before 'type'】。但在.cpp中却顺利通过。求解这是怎么回事

 #include  <stdio.h>
#include  <stdlib.h>
#define  M  14
void NONO();
void  fun( char (*t)[M], int *a ,int *c)
{
    *a=0;
    *c=0;

    int i,  j;                            //错误在这里

    for(i=0;i<M;i++)
        for(j=0;j<M;j++)
            if(t[i][j]=='A')(*a)++;
            else if(t[i][j]=='C')(*c)++;
}

void  get( char (*s)[M] )
{  int  i, j;
   for( i=0; i<M; i++ )
   {  for( j=0; j<M; j++)
      {  s[i][j]=65+rand()%12; printf( "%c ",s[i][j]); }
      printf("\n");
   }
}

int main()
{  char  a[M][M];
   int   x, y;
   get (a);
   fun ( a, &x,&y );
   printf("A = %d   C = %d\n",x,y);
   return 0;
}

4个回答

zuishikonghuan
zuishikonghuan   2016.03.15 08:42
已采纳

根据C89标准,c语言局部变量定义必须在其他语句前面,用微软的编译器都会这样(包括VS2010,VS2013.2015没试)用GCC编译器则需要指定C99标准:
gcc -std=c99 -o a a.cpp

baijiaheizhiganmao
baijiaheizhiganmao   2016.03.14 16:43

就算不是VC,也是这个样子啊!
C语言规定,函数中变量的定义,必须在任何其他语句之前.你看你出错这条语句之前,已经有了其他的操作了,因此编译器检测到这个问题就报错了.
这是C语言的细节,和编译器无关.

baidu_34287515
baidu_34287515   2016.03.14 16:58

Microsoft Visual C++ 6.0,简称VC6.0,是微软推出的一款C++编译器。
Visual C++6.0不仅是一个C++ 编译器,而且是一个基于Windows操作系统的可视化集成开发环境(integrated development environment,IDE)。

lx624909677
lx624909677   Ds   Rxr 2016.03.14 17:10

C是面向过程的编程,C++是面向对象的编程C++是通过类来封装各种操作的,C是直接各种函数,没有类的概念,纯C的项目,代码超过3万行,基本就不可维护了

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
java语言和C语言的跨平台原理
java跨平台原理(优点:一次编译,到处运行) C语言跨平台原理:(优点:多次编译,到出运行)
C语言和C++的不同之处和相同之处
原文来自:http://blog.csdn.net/qq_30125317/article/details/47066675 有适当修改,感谢。  ​一、应用场合 C语言:​C语言是结构化和模块化的语言,是面向过程的。当程序的规模较小时,C语言运用起来得心应手。但是当问题比较复杂、程序的规模比较大的时候,C语言就会展现出它的局限性。 C++:正是因为有大规模的程序需要去处理
VC6.0中的C语言反汇编代码
VC6.0 C语言 反汇编
C与C++的一些不同之处
以前也没多注意C和C++有什么差别,感觉C++没有类,模板和引用,那么C++就是C近几天特别注意了这方面的问题,发现以前想的还是有问题的。去掉了类,模板和引用的C++和C还是有一定的差别的。下面列了几点还多多指教函数原型在C++中函数原型是必须的,而C中是可选的在C中圆括号意味着前向原型声明,但在C++中就意味着函数没有原型例如int test();int main(){    int test(
Java与C、C++的相似跟不同区别之处…
Java与C、C++的区别 首先应该清楚,Java 是由 C++发展而来的,保留了 C++的大部分内容,其编程方式类似于 C++。但 Java 的句法更清晰、规模更小、更易学。Sun 公司对多种程序设计语言进行了深入研究,并摒弃了其他语言的不足之处,最终退出了 Java。正是这样,Java 从根本上解决了 C++的固有缺陷,形成了一种新的完全面向对象的语言。 Java 和 C/C++的相似
【C语言】使用VC6.0创建C工程
打开vc6.0后我们可以看到一个工作界面 点击左上角的“文件”,在下拉菜单中选择“新建” 在弹出的对话框中选择“工程”选项卡下的“win32 console application”,在右边的“工程名称”输入名称,下面的“位置”是该工程存放的路径,根据需要修改。 输入完成后
socket套接字通信C语言示例vc6.0
转自:http://blog.csdn.net/xgx198831/article/details/8464552 socket套接字通信C语言示例,编程环境vc6.0 该程序用使用的面向连接(tcp/ip)的字符流套接字 程序包含两部分,一部分是通信的服务端,一部分是通信的客户端 //========================================
VC6.0 C语言实现简单的贪吃蛇
裸写的俄罗斯方块的代码,有意见或者想征用,直接评论留言即可。 效果如下: /***************************************************************/ /*只用数组实现贪吃蛇 1、实现上下左右键控制蛇 ------ 2016.10.30 2、加入蛇的碰壁及自咬检测机制 ------ 2016.
面试经常问的C语言变量在内存中的分布(VC6.0)
C/C++变量在内存中的分布在笔试时经常考到,虽然简单,但也容易忘记,因此在这作个总结,以加深印象。 一: #include #include int g_i = 100; int g_j = 200; int g_k, g_h; int main() { const int MAXN = 100; int *p = (int*)malloc(MAXN * sizeof(int));
VC++6.0中如何编译运行及调试C语言程序
VC++6.0中如何编译运行及调试C语言程序