VS2019使用问题
去年初学C语言按着课本敲了一些代码,有头文件和源文件,其中源文件是CPP类型的,今天才发现,然后改回C类型头文件一直报错,求助怎么调。VS用的是C++桌面开发(貌似没找到C语言的)
头文件.h
#pragma once
#define MaxSize 100 //顺序栈的初始分配空间大小
typedef char ElemType;
typedef struct {
ElemType data; //保存栈中元素,这里假设ElemType为char类型
int top; //栈顶指针
}SqStack;
//初始化栈运算算法
void InitStack(SqStack& st) { //st为引用型参数
st.top = -1;
}
//销毁栈运算算法
void DestroyStack(SqStack st) {
}
//进栈运算算法
int Push(SqStack& st, ElemType x) {
if (st.top == MaxSize - 1) //栈满上溢出返回0
return 0;
else {
st.top++;
st.data = x;
return 1; //成功进栈返回1
}
}
//出栈运算算法
int Pop(SqStack& st, ElemType& x) { //x为引用型参数
if (st.top == -1) //栈空返回0
return 0;
else {
x = st.data;
st.top--;
return 1; //成功栈返回1
}
}
//取栈顶元素运算算法
int GetTop(SqStack st, ElemType& x) { //x为引用型参数
if (st.top == -1) //栈空返回0
return 0;
else {
x = st.data;
return 1; //成功取栈顶元素返回1
}
}
//判断空栈运算算法
int StackEmpty(SqStack st) {
if (st.top == -1)
return 1; //栈空返回1
else
return 0; //栈不空返回0
}
源文件.c
#include<stdio.h>
#include"test06.h"
void main() {
SqStack st; //定义一个顺序栈st
ElemType e;
printf("初始化栈st\n");
InitStack(st);
printf("栈%s\n", (StackEmpty(st) == 1 ? "空" : "不空"));
printf("a进栈\n"); Push(st, 'a');
printf("b进栈\n"); Push(st, 'b');
printf("c进栈\n"); Push(st, 'c');
printf("d进栈\n"); Push(st, 'd');
printf("栈%s\n", (StackEmpty(st) == 1 ? "空" : "不空"));
GetTop(st, e);
printf("栈顶元素:%c\n", e);
printf("出栈次序:");
while (!StackEmpty(st)) { //栈不空循环
Pop(st, e); //出栈元素e并输出
printf("%c", e);
}
printf("\n");
DestroyStack(st);
}
图片发不了。。。头文件类型显示是C++头文件{:10_243:} 上面的代码是栈的顺序存储,CPP格式运行是对的,只是想问下VS问题 可以用C++项目,但文件名改.c hrpzcf 发表于 2021-10-12 14:12
可以用C++项目,但文件名改.c
我是这么做的,但头文件还是出现错误。头文件类型是C++的,错误和这个有关系? a327904410 发表于 2021-10-12 14:31
我是这么做的,但头文件还是出现错误。头文件类型是C++的,错误和这个有关系?
严重性 代码 说明 项目 文件 行 禁止显示状态
错误(活动) E0141 存在正文时不允许未命名的原型参数 01 D:\Mycode\Books\01\test06.h 11
严重性 代码 说明 项目 文件 行 禁止显示状态
错误(活动) E0018 应输入“)” 01 D:\Mycode\Books\01\test06.h 11
错误(活动) E0020 未定义标识符 "st" 01 D:\Mycode\Books\01\test06.h 12
错误(活动) E0141 存在正文时不允许未命名的原型参数 01 D:\Mycode\Books\01\test06.h 21
错误(活动) E0018 应输入“)” 01 D:\Mycode\Books\01\test06.h 21
a327904410 发表于 2021-10-12 14:33
严重性 代码 说明 项目 文件 行 禁止显示状态
错误(活动) E0141 存在正文时不允许未命名的原型参数 01 D ...
C语言中没有引用
void InitStack(SqStack& st) { //st为引用型参数 人造人 发表于 2021-10-12 14:38
C语言中没有引用
今晚查了下才知道,解决办法是把后缀改为CPP,但CPP不是C++了吗,虽然可以写C语言但感觉CPP和C到底怎么选。。。 a327904410 发表于 2021-10-13 00:00
今晚查了下才知道,解决办法是把后缀改为CPP,但CPP不是C++了吗,虽然可以写C语言但感觉CPP和C到底怎么选 ...
在 C语言中没有引用,可以使用指针
人造人 发表于 2021-10-13 00:09
在 C语言中没有引用,可以使用指针
{:10_323:}
页:
[1]