鱼C论坛

 找回密码
 立即注册
查看: 2432|回复: 9

[已解决]VS2019使用问题

[复制链接]
发表于 2021-10-12 14:10:28 | 显示全部楼层 |阅读模式

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

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

x
去年初学C语言按着课本敲了一些代码,有头文件和源文件,其中源文件是CPP类型的,今天才发现,然后改回C类型头文件一直报错,求助怎么调。
VS用的是C++桌面开发(貌似没找到C语言的)

头文件.h
  1. #pragma once
  2. #define MaxSize 100                  //顺序栈的初始分配空间大小

  3. typedef char ElemType;
  4. typedef struct {
  5.         ElemType data[MaxSize];                //保存栈中元素,这里假设ElemType为char类型
  6.         int top;                               //栈顶指针
  7. }SqStack;

  8. //初始化栈运算算法
  9. void InitStack(SqStack& st) {                   //st为引用型参数
  10.         st.top = -1;
  11. }

  12. //销毁栈运算算法
  13. void DestroyStack(SqStack st) {

  14. }

  15. //进栈运算算法
  16. int Push(SqStack& st, ElemType x) {
  17.         if (st.top == MaxSize - 1)                      //栈满上溢出返回0
  18.                 return 0;
  19.         else {
  20.                 st.top++;
  21.                 st.data[st.top] = x;
  22.                 return 1;                           //成功进栈返回1
  23.         }
  24. }

  25. //出栈运算算法
  26. int Pop(SqStack& st, ElemType& x) {               //x为引用型参数
  27.         if (st.top == -1)                             //栈空返回0
  28.                 return 0;
  29.         else {
  30.                 x = st.data[st.top];
  31.                 st.top--;
  32.                 return 1;                         //成功栈返回1
  33.         }
  34. }

  35. //取栈顶元素运算算法
  36. int GetTop(SqStack st, ElemType& x) {           //x为引用型参数
  37.         if (st.top == -1)                      //栈空返回0
  38.                 return 0;
  39.         else {
  40.                 x = st.data[st.top];
  41.                 return 1;                    //成功取栈顶元素返回1
  42.         }
  43. }

  44. //判断空栈运算算法
  45. int StackEmpty(SqStack st) {
  46.         if (st.top == -1)
  47.                 return 1;                           //栈空返回1
  48.         else
  49.                 return 0;                        //栈不空返回0
  50. }
复制代码


源文件.c
  1. #include<stdio.h>
  2. #include"test06.h"

  3. void main() {
  4.         SqStack st;                   //定义一个顺序栈st
  5.         ElemType e;
  6.         printf("初始化栈st\n");
  7.         InitStack(st);
  8.         printf("栈%s\n", (StackEmpty(st) == 1 ? "空" : "不空"));
  9.         printf("a进栈\n"); Push(st, 'a');
  10.         printf("b进栈\n"); Push(st, 'b');
  11.         printf("c进栈\n"); Push(st, 'c');
  12.         printf("d进栈\n"); Push(st, 'd');
  13.         printf("栈%s\n", (StackEmpty(st) == 1 ? "空" : "不空"));
  14.         GetTop(st, e);
  15.         printf("栈顶元素:%c\n", e);
  16.         printf("出栈次序:");
  17.         while (!StackEmpty(st)) {                   //栈不空循环
  18.                 Pop(st, e);                         //出栈元素e并输出
  19.                 printf("%c", e);
  20.         }
  21.         printf("\n");
  22.         DestroyStack(st);
  23. }
复制代码


图片发不了。。。头文件类型显示是C++头文件
最佳答案
2021-10-12 14:38:06
a327904410 发表于 2021-10-12 14:33
严重性        代码        说明        项目        文件        行        禁止显示状态
错误(活动)        E0141        存在正文时不允许未命名的原型参数        01        D ...

C语言中没有引用
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-10-12 14:11:07 | 显示全部楼层
上面的代码是栈的顺序存储,CPP格式运行是对的,只是想问下VS问题
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-10-12 14:12:42 From FishC Mobile | 显示全部楼层
可以用C++项目,但文件名改.c
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-10-12 14:31:46 | 显示全部楼层
hrpzcf 发表于 2021-10-12 14:12
可以用C++项目,但文件名改.c

我是这么做的,但头文件还是出现错误。头文件类型是C++的,错误和这个有关系?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-10-12 14:33:14 | 显示全部楼层
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       
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-10-12 14:38:06 | 显示全部楼层    本楼为最佳答案   
a327904410 发表于 2021-10-12 14:33
严重性        代码        说明        项目        文件        行        禁止显示状态
错误(活动)        E0141        存在正文时不允许未命名的原型参数        01        D ...

C语言中没有引用
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-10-12 14:38:39 | 显示全部楼层
void InitStack(SqStack& st) {                   //st为引用型参数
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-10-13 00:00:14 | 显示全部楼层

今晚查了下才知道,解决办法是把后缀改为CPP,但CPP不是C++了吗,虽然可以写C语言但感觉CPP和C到底怎么选。。。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-10-13 00:09:14 | 显示全部楼层
a327904410 发表于 2021-10-13 00:00
今晚查了下才知道,解决办法是把后缀改为CPP,但CPP不是C++了吗,虽然可以写C语言但感觉CPP和C到底怎么选 ...

在 C语言中没有引用,可以使用指针
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-10-14 14:45:58 | 显示全部楼层
人造人 发表于 2021-10-13 00:09
在 C语言中没有引用,可以使用指针

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-26 00:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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