| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1937 人关注过本帖
标题:编译器的问题? vb6.0 VS visual studio 2012
只看楼主 加入收藏
chihuyu
Rank: 2
等 级:论坛游民
帖 子:70
专家分:13
注 册:2011-12-26
结帖率:100%
收藏
已结贴  问题点数:6 回复次数:7 
编译器的问题? vb6.0 VS visual studio 2012
程序代码:
#include<stdio.h>
void main()
{
    int i=3,j=5;
    int *p,*q;
    p=&i;
    q=&j;

    float a=5.8,b=7.9;
    float *c,*d;
    c=&a;
    d=&b;

    char m='I',n='L';
    char *x,*y;
    x=&m;
    y=&n;

    printf("i=%d, j=%d\n",*p,*q);
    printf("a=%g, b=%g\n",*c,*d);
    printf("m=%c, n=%c\n",*x,*y);
}



以上很简单的一段代码,主要是试试用指针,在vb6.0里面可以实现,但是在ms visual studio 2012里面,就不行
编译不通过
1>------ Build started: Project: Have a try, Configuration: Debug Win32 ------
1>  Have a try.c
1>c:\users\dell\documents\visual studio 2012\projects\have a try\have a try\have a try.c(9): error C2143: syntax error : missing ';' before 'type'
1>c:\users\dell\documents\visual studio 2012\projects\have a try\have a try\have a try.c(10): error C2143: syntax error : missing ';' before 'type'
1>c:\users\dell\documents\visual studio 2012\projects\have a try\have a try\have a try.c(11): error C2065: 'c' : undeclared identifier
1>c:\users\dell\documents\visual studio 2012\projects\have a try\have a try\have a try.c(11): error C2065: 'a' : undeclared identifier
1>c:\users\dell\documents\visual studio 2012\projects\have a try\have a try\have a try.c(11): warning C4047: '=' : 'int' differs in levels of indirection from 'int *'
1>c:\users\dell\documents\visual studio 2012\projects\have a try\have a try\have a try.c(12): error C2065: 'd' : undeclared identifier
1>c:\users\dell\documents\visual studio 2012\projects\have a try\have a try\have a try.c(12): error C2065: 'b' : undeclared identifier
1>c:\users\dell\documents\visual studio 2012\projects\have a try\have a try\have a try.c(12): warning C4047: '=' : 'int' differs in levels of indirection from 'int *'
1>c:\users\dell\documents\visual studio 2012\projects\have a try\have a try\have a try.c(14): error C2143: syntax error : missing ';' before 'type'
1>c:\users\dell\documents\visual studio 2012\projects\have a try\have a try\have a try.c(15): error C2143: syntax error : missing ';' before 'type'
1>c:\users\dell\documents\visual studio 2012\projects\have a try\have a try\have a try.c(16): error C2065: 'x' : undeclared identifier
1>c:\users\dell\documents\visual studio 2012\projects\have a try\have a try\have a try.c(16): error C2065: 'm' : undeclared identifier
1>c:\users\dell\documents\visual studio 2012\projects\have a try\have a try\have a try.c(16): warning C4047: '=' : 'int' differs in levels of indirection from 'int *'
1>c:\users\dell\documents\visual studio 2012\projects\have a try\have a try\have a try.c(17): error C2065: 'y' : undeclared identifier
1>c:\users\dell\documents\visual studio 2012\projects\have a try\have a try\have a try.c(17): error C2065: 'n' : undeclared identifier
1>c:\users\dell\documents\visual studio 2012\projects\have a try\have a try\have a try.c(17): warning C4047: '=' : 'int' differs in levels of indirection from 'int *'
1>c:\users\dell\documents\visual studio 2012\projects\have a try\have a try\have a try.c(20): error C2065: 'c' : undeclared identifier
1>c:\users\dell\documents\visual studio 2012\projects\have a try\have a try\have a try.c(20): error C2100: illegal indirection
1>c:\users\dell\documents\visual studio 2012\projects\have a try\have a try\have a try.c(20): error C2065: 'd' : undeclared identifier
1>c:\users\dell\documents\visual studio 2012\projects\have a try\have a try\have a try.c(21): error C2065: 'x' : undeclared identifier
1>c:\users\dell\documents\visual studio 2012\projects\have a try\have a try\have a try.c(21): error C2100: illegal indirection
1>c:\users\dell\documents\visual studio 2012\projects\have a try\have a try\have a try.c(21): error C2065: 'y' : undeclared identifier
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========


请问大家,这是为什么呀?
如果将程序代码改成
程序代码:
#include<stdio.h>
void main()
{
    int i=3,j=5;
    int *p,*q;
    float a=5.8,b=7.9;
    float *c,*d;
    char m='I',n='L';
    char *x,*y;

    p=&i;
    q=&j;

    c=&a;
    d=&b;

    x=&m;
    y=&n;

    printf("i=%d, j=%d\n",*p,*q);
    printf("a=%g, b=%g\n",*c,*d);
    printf("m=%c, n=%c\n",*x,*y);
}

就 OK了,这又是为什么呀?

谢谢
搜索更多相关主题的帖子: visual 编译器 
2013-09-08 06:38
peach5460
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:武汉
等 级:贵宾
威 望:30
帖 子:2780
专家分:6060
注 册:2008-1-28
收藏
得分:2 
这两个编译器本来就不一样...

我总觉得授人以鱼不如授人以渔...
可是总有些SB叫嚣着:要么给代码给答案,要么滚蛋...
虽然我知道不要跟SB一般见识,但是我真的没修炼到宠辱不惊...
2013-09-08 07:15
chihuyu
Rank: 2
等 级:论坛游民
帖 子:70
专家分:13
注 册:2011-12-26
收藏
得分:0 
不是visual studio也可以开发c程序的嘛
2013-09-08 08:13
apologz
Rank: 2
等 级:论坛游民
帖 子:56
专家分:24
注 册:2013-2-4
收藏
得分:2 
可能第二个编译器只支持变量声明在函数前部分吧

难觅知音、同一个编程梦,我们共同进步。
2013-09-08 09:22
veketdelphi
Rank: 5Rank: 5
等 级:职业侠客
帖 子:67
专家分:374
注 册:2013-4-8
收藏
得分:2 
vc6 把变量定义全都放到前面 (如果想用到变量时才定义变量请用 { }括起来 限定作用域 )
或者干脆把扩展名.c改成.cpp 让vc6把你的程序当做c++来编译


2013-09-08 09:52
jg658237
Rank: 7Rank: 7Rank: 7
来 自:青藏高原
等 级:黑侠
帖 子:224
专家分:529
注 册:2013-8-8
收藏
得分:2 
这只是编译器的问题,你的程序是没问题的,你换个编译器还会出现类似的情况的.没什么的.

武功再高也怕菜刀.
2013-09-08 15:11
米兰的大铁匠
Rank: 2
来 自:天外
等 级:论坛游民
帖 子:61
专家分:84
注 册:2013-7-16
收藏
得分:2 
是编译器的问题,我就遇到过
2013-09-08 15:23
lwei
Rank: 5Rank: 5
等 级:职业侠客
威 望:3
帖 子:197
专家分:369
注 册:2005-5-4
收藏
得分:0 
这个代码VB可以运行吗????

2013-09-09 23:13
快速回复:编译器的问题? vb6.0 VS visual studio 2012
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017551 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved