| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1173 人关注过本帖
标题:dev_cpp中函数参数为引用,编译不通过,怎么回事,帮忙解释一下
取消只看楼主 加入收藏
lkcumt
Rank: 1
等 级:新手上路
帖 子:8
专家分:1
注 册:2010-10-2
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:2 
dev_cpp中函数参数为引用,编译不通过,怎么回事,帮忙解释一下
程序源代码如下:

#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>

#define STACK_INIT_SIZE 100
#define STACKINCREMENT 10
#define OVERFLOW       -2
#define OK 1
#define ERROR 0

typedef struct{
        int *base;
        int *top;
        int stacksize;
}Sqstack;
        
int InitStack(Sqstack &s){
    //构造一个空栈s
    s.base = (int *)malloc(STACK_INIT_SIZE * sizeof(int));
    if(!s.base) exit(OVERFLOW);
    s.top = s.base ;
    s.stacksize = STACK_INIT_SIZE ;
    return OK ;
}//InitStack

int GetTop(Sqstack s,int &e){
    //若栈不空,则用e返回s 的栈顶元素,并返回OK,否则返回ERROR  
    if(s.top == s.base) return ERROR;
    e=*(s.top-1);
    return OK;
}//Getop

int Push(Sqstack &s,int e){
    //插入元素e为新的栈顶元素
    if(s.top-s.base>=s.stacksize){//栈满,追加存储空间
       s.base = (int *)realloc(s.base,(s.stacksize + STACKINCREMENT)*sizeof(int));
       if(!s.base) exit(OVERFLOW);
       s.top = s.base + s.stacksize ;
       s.stacksize += STACKINCREMENT ;
       }
       *s.top++ = e;
       return OK ;
}//Push

int Pop(Sqstack &s,int &e){
    //若栈不空,则删除s的栈顶元素,用e返回其值,并返回OK;否则返回ERROR
    if(s.base==s.top) return ERROR ;
    e =  *--s.top;
    return OK ;
}//Pop

int main(int argc, char *argv[])
{
    int *f;
    size_t size ;
    int i,e=0;
    Sqstack s1,s2;
    InitStack(s1);
    InitStack(s2);
    f = (int *)malloc(STACK_INIT_SIZE * sizeof(int));
    if(!f) exit(OVERFLOW);
    size = _msize(f);
    printf("size : %d \n ",size);
   
    Push(s1,2);//2入栈
    Pop(s1,e); //出栈
    printf("::::%d\n",e);
    printf("Hello World !\n");
    system("PAUSE");   
    return 0;
}
编译时有以下错误:
19 D:\C++编程\lk\数据结构\main.c syntax error before '&' token
 D:\C++编程\lk\数据结构\main.c In function `InitStack':
21 D:\C++编程\lk\数据结构\main.c `s' undeclared (first use in this function)
...
一下类似,省略。
这种加取地址符的方法在VC6.0中可以,在dev_cpp里不行,哪位可以解释一下?怎么解决?谢谢!
搜索更多相关主题的帖子: cpp dev 函数 参数 编译 
2010-10-15 23:38
lkcumt
Rank: 1
等 级:新手上路
帖 子:8
专家分:1
注 册:2010-10-2
收藏
得分:0 
回复 2楼 御坂美琴
在Dev_cpp里我建的工程是C语言的,现在是C++的,能运行了!C语言没有那种用法吗?
2010-10-18 16:50
lkcumt
Rank: 1
等 级:新手上路
帖 子:8
专家分:1
注 册:2010-10-2
收藏
得分:0 
回复 3楼 m21wo
呵呵,你建的工程应该是C++语言的
2010-10-18 16:51
快速回复:dev_cpp中函数参数为引用,编译不通过,怎么回事,帮忙解释一下
数据加载中...
 
   



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

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