鱼C论坛

 找回密码
 立即注册
查看: 4417|回复: 16

VS2010编译不了VC6的代码

[复制链接]
发表于 2013-11-18 11:36:41 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
   如题,敲了一段栈程序代码,VC++6.0成功编译通过,但VS2010总是提示有错,不兼容么?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-11-18 12:58:23 | 显示全部楼层
坐等高手出现。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-11-18 13:16:59 | 显示全部楼层
能否贴一下代码和错误提示。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-11-18 13:52:35 | 显示全部楼层
本帖最后由 yuqiuwangzi 于 2013-11-18 13:53 编辑
  1. # include <stdio.h>
  2. # include <malloc.h>
  3. # include <stdlib.h>

  4. typedef struct Node
  5. {
  6.         int data;
  7.         struct Node * pNext;
  8. }NODE, * PNODE;

  9. typedef struct Stack
  10. {
  11.         PNODE pTop;
  12.         PNODE pBottom;
  13. }STACK, * PSTACK;  //PSTACK 等价于 struct STACK *

  14. void init(PSTACK);
  15. void push(PSTACK, int );
  16. void traverse(PSTACK);
  17. bool pop(PSTACK, int *);
  18. void clear(PSTACK pS);

  19. int main(void)
  20. {
  21.         STACK S;  //STACK 等价于 struct Stack
  22.         int val;

  23.         init(&S);  //目的是造出一个空栈
  24.         push(&S, 1); //压栈
  25.         push(&S, 2);
  26.         push(&S, 3);
  27.         push(&S, 4);
  28.         push(&S, 5);
  29.         push(&S, 6);
  30.         traverse(&S); //遍历输出
  31.         
  32.         clear(&S);
  33.         //traverse(&S); //遍历输出

  34.         if ( pop(&S, &val) )
  35.         {
  36.                 printf("出栈成功,出栈的元素是%d\n", val);
  37.         }
  38.         else
  39.         {
  40.                 printf("出栈失败!\n");
  41.         }

  42.         traverse(&S); //遍历输出

  43.         return 0;
  44. }

  45. void init(PSTACK pS)
  46. {
  47.         pS->pTop = (PNODE)malloc(sizeof(NODE));
  48.         if (NULL == pS->pTop)
  49.         {
  50.                 printf("动态内存分配失败!\n");
  51.                 exit(-1);
  52.         }
  53.         else
  54.         {
  55.                 pS->pBottom = pS->pTop;
  56.                 pS->pTop->pNext = NULL; //pS->Bottom->pNext = NULL;
  57.         }
  58. }

  59. void push(PSTACK pS, int val)
  60. {
  61.         PNODE pNew = (PNODE)malloc(sizeof(NODE));
  62.         
  63.         pNew->data = val;
  64.         pNew->pNext = pS->pTop; //pS->Top不能改成pS->Bottom
  65.         pS->pTop = pNew;

  66.         return;
  67. }

  68. void traverse(PSTACK pS)
  69. {
  70.         PNODE p = pS->pTop;

  71.         while (p != pS->pBottom)
  72.         {
  73.                 printf("%d  ", p->data);
  74.                 p = p->pNext;
  75.         }
  76.         printf("\n");

  77.         return;
  78. }

  79. bool empty(PSTACK pS)
  80. {
  81.         if (pS->pTop == pS->pBottom)
  82.                 return true;
  83.         else
  84.                 return false;
  85. }

  86. //把pS所指向的栈出栈一次,并把出栈的元素存入pVal形参所指向的变量中,如果出栈失败,返回false,否则返回true
  87. bool pop(PSTACK pS, int * pVal)
  88. {
  89.         if ( empty(pS) ) //pS本身存放的就是S的地址
  90.         {
  91.                 return false;
  92.         }
  93.         else
  94.         {
  95.                 PNODE r = pS->pTop;
  96.                 *pVal = r->data;
  97.                 pS->pTop = r->pNext;
  98.                 free(r);
  99.                 r = NULL;

  100.                 return true;
  101.         }
  102. }

  103. //clear清空
  104. void clear(PSTACK pS)
  105. {
  106.         if (empty(pS))
  107.         {
  108.                 return;
  109.         }
  110.         else
  111.         {
  112.                 PNODE p = pS->pTop;
  113.                 PNODE q = NULL;

  114.                 while (p != pS->pBottom)
  115.                 {
  116.                         q = p->pNext;
  117.                         free(p);
  118.                         p = q;
  119.                 }
  120.                 pS->pTop = pS->pBottom;
  121.         }
  122. }
复制代码
循环队列.c(20): error C2061: 语法错误: 标识符“pop”
循环队列.c(20): error C2059: 语法错误:“;”
循环队列.c(20): error C2059: 语法错误:“类型”
循环队列.c(40): warning C4013: “pop”未定义;假设外部返回 int
循环队列.c(94): error C2061: 语法错误: 标识符“empty”
循环队列.c(94): error C2059: 语法错误:“;”
循环队列.c(94): error C2059: 语法错误:“类型”
循环队列.c(103): error C2061: 语法错误: 标识符“pop”
循环队列.c(103): error C2059: 语法错误:“;”
循环队列.c(103): error C2059: 语法错误:“类型”
循环队列.c(124): warning C4013: “empty”未定义;假设外部返回 int
1>
1>生成失败。
1>


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-11-18 15:19:30 | 显示全部楼层
你注意一下你的头文件
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-11-18 15:20:17 | 显示全部楼层
把那些什.h的都去掉
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-11-18 15:23:54 | 显示全部楼层
我的可以成功运行啊~~~我运行过
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-11-18 18:35:50 | 显示全部楼层
我用VS2010编译了一下你的代码没错哦。 1.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-11-18 23:06:51 | 显示全部楼层
猪猪BBUn咕咕 发表于 2013-11-18 15:23
我的可以成功运行啊~~~我运行过

为毛啊。。。提示的那些错误我看根本就没错。。。这软件应该没问题才对
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-11-18 23:09:30 | 显示全部楼层
friendan 发表于 2013-11-18 18:35
我用VS2010编译了一下你的代码没错哦。

那我这怎么回事啊,莫非是软件问题?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-11-18 23:21:11 | 显示全部楼层
yuqiuwangzi 发表于 2013-11-18 23:09
那我这怎么回事啊,莫非是软件问题?

你写个简单的类似hello world之类的测试一下看看。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-11-18 23:25:11 | 显示全部楼层
friendan 发表于 2013-11-18 23:21
你写个简单的类似hello world之类的测试一下看看。

试过了,hello world这类简单的没问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-11-18 23:29:24 | 显示全部楼层
yuqiuwangzi 发表于 2013-11-18 23:25
试过了,hello world这类简单的没问题

添加以下语句看看:

#include "stdafx.h"

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-11-19 00:11:22 | 显示全部楼层
friendan 发表于 2013-11-18 23:29
添加以下语句看看:

#include "stdafx.h"

没有作用。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-11-19 00:12:40 | 显示全部楼层
friendan 发表于 2013-11-18 23:29
添加以下语句看看:

#include "stdafx.h"

之前写任何C程序都没问题,只是最近学数据结构,敲这些程序就一直出错,但是VC++6.0都是可以编译通过的。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-11-19 11:32:58 | 显示全部楼层
yuqiuwangzi 发表于 2013-11-19 00:12
之前写任何C程序都没问题,只是最近学数据结构,敲这些程序就一直出错,但是VC++6.0都是可以编译通过的。 ...

这样的话,要么是VS2010设置错误,如lib路径,包含文件路径,bin路径等。
要么你得重新安装VS2010了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-11-19 12:51:01 | 显示全部楼层
friendan 发表于 2013-11-19 11:32
这样的话,要么是VS2010设置错误,如lib路径,包含文件路径,bin路径等。
要么你得重新安装VS2010了。

我不知道怎样就算设置正确了。。。我先重装试试看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-20 01:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表