| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 564 人关注过本帖
标题:编译时出现这个错误“功能':不兼容的类型”红色的那行,高手帮忙看下
只看楼主 加入收藏
bccnjj
Rank: 1
等 级:新手上路
帖 子:15
专家分:4
注 册:2012-2-16
结帖率:0
收藏
 问题点数:0 回复次数:4 
编译时出现这个错误“功能':不兼容的类型”红色的那行,高手帮忙看下

#include "stdio.h"
#include "malloc.h"
#include "stdlib.h"
typedef struct Node
{
    int date;
    struct Node *pNext;
}NODE, *PNODE;
typedef struct Stack
{
    PNODE pTop;
    PNODE pBottom;
}STACK, *PSTACK;//PSTACK等价于struct Stack
void init_Stack(STACK pS);
int main(void)
{
    STACK S;//STACK等价于struct Stack;
    init_Stack(&S);
//    pushStack(&S, 1);
//    pushStack(&S, 2);
//    traverse_Stack(&S);
    return 0;
}
void init_Stack(STACK pS)
{
    pS->pTop = (PNODE)malloc(sizeof(NODE));
    if (NULL == pS->pTop)
    {
        printf("分配失败!\n");
        exit(-1);
    }
    else
    {
        pS->pBottom = pS->pTop;
        pS->pTop->pNext = NULL;
    }
}
搜索更多相关主题的帖子: void include return 
2012-07-24 15:44
silent_world
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:1
帖 子:258
专家分:1138
注 册:2011-9-24
收藏
得分:0 
类型不一致
一个是结构体,一个是指针
2012-07-24 17:26
westfall999
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:40
专家分:101
注 册:2012-7-22
收藏
得分:0 
把void init_Stack(STACK pS);改成void init_Stack(STACK *pS);就成了。
或者改成void init_Stack(PSTACK pS);
下面实现函数init_Stack的地方也要改一下。
2012-07-24 19:12
bccnjj
Rank: 1
等 级:新手上路
帖 子:15
专家分:4
注 册:2012-2-16
收藏
得分:0 
回复 3楼 westfall999
程序代码:
#include "stdio.h"
#include "malloc.h"
#include "stdlib.h"
#define bool int;
#define true 1;
#define false 0;
typedef struct Node
{
    int date;
    struct Node *pNext;
}NODE, *PNODE;
typedef struct Stack
{
    PNODE pTop;
    PNODE pBottom;

}STACK, *PSTACK;

void init_Stack(PSTACK);
void push(PSTACK pS, int Val);
void traverse(PSTACK);
bool pop(PSTACK, int *);

int main()
{
    STACK S;
    //int val;
    init_Stack(&S);
    push(&S, 1);
    push(&S, 2);
    push(&S, 3);
    push(&S, 4);
    push(&S, 5);

    traverse(&S);
    return 0;
}

void init_Stack(PSTACK pS)
{
    pS->pTop = (PNODE)malloc(sizeof(NODE));
    if (NULL == pS->pTop)
    {
        printf("动态内存分配失败!\n");
        exit(-1);
    }
    else
    {
        pS->pBottom = pS->pTop;
        pS->pBottom->pNext = NULL;
    }
}

void push(PSTACK pS, int val)
{
   
    PNODE pNew = (PNODE)malloc(sizeof(NODE));
    pNew->date = val;
    pNew->pNext = pS->pTop;
    pS->pTop = pNew;
    return;
}

void traverse(PSTACK pS)
{
    PNODE p = pS->pTop;
    while (p != pS->pBottom)
    {
        printf("%d ", p->date);
        p = p->pNext;
    }
    printf("\n");
    return;
}

bool empty(PSTACK pS)
{
    if (pS->pTop == pS->pBottom)
        return true;
    else
        return false;
}

bool pop(PSTACK pS, int *pVal)
{
    if ( empty(pS) )
    {
        return false;
    }
    else
    {
        PNODE r = pS->pTop;
        *pVal = r->date;
        pS->pTop = r->pNext;
        free(r);
        r = NULL;
        return true;
    }
}


//红色的那名在编译的时候提示warning C4091: ' ' : ignored on left of 'int ' when no variable is declared这个错误,我检查不知道哪里出错误,麻烦帮忙解决
2012-07-24 19:40
hao02171990
Rank: 2
等 级:论坛游民
帖 子:17
专家分:17
注 册:2012-6-20
收藏
得分:0 
太帅了!
2012-08-14 11:20
快速回复:编译时出现这个错误“功能':不兼容的类型”红色的那行,高手帮忙看下
数据加载中...
 
   



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

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