gpt4 book ai didi

c - Visual Studio 2010 在尝试调试时给我语法错误,但没有语法错误!

转载 作者:太空宇宙 更新时间:2023-11-04 01:13:38 25 4
gpt4 key购买 nike

我正在使用 Visual Studio 2010,我正在尝试运行一个用 C 语言编写的简单程序,但是当我按 F5 键时出现大量语法错误。几乎都是因为这个:

syntax error: missing ';' before 'type'.

这是我的主要功能的样子:

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

int main()
{
printf("Enter base 10 num: ");
int value; scanf("%d", &value);
printf("Enter base floor (min 2): ");
int min; scanf("%d", &min);
printf("Enter base ceiling (max 10): ");
int max; scanf("%d", &max);
base_convert(value, min, max);
return 0;
}

你看到的第一个int值是第12行,VS2010的第一个报错是在第12行,char 1,也就是那个int所在的位置。按照报告我缺少“;”的消息(我显然不是),然后它继续告诉我该值未声明。

我该如何解决这个问题?我知道我的程序实际上没有语法(或任何)错误 - 这是以前编写和测试的,可以在带有 GCC 编译器的 Ubuntu 上运行。

有人可以帮忙吗?这非常令人沮丧:S

最佳答案

ANSI C 不允许在 block 的中间定义变量——它们必须在 block 的顶部定义。后来的 C99 标准取消了这个限制(就像 C++ 那样),但是 Visual Studio 不支持 C99。

用顶部的变量声明重写你的函数:

int main()
{
int value, min, max;
printf("Enter base 10 num: ");
scanf("%d", &value);
printf("Enter base floor (min 2): ");
scanf("%d", &min);
printf("Enter base ceiling (max 10): ");
scanf("%d", &max);
base_convert(value, min, max);
return 0;
}

GCC 作为一个扩展,默认允许在 block 的中间定义变量。如果您指定 -pedantic 命令行选项(没有 -std=c99),您将收到以下警告:

warning: ISO C90 forbids mixed declarations and code

关于c - Visual Studio 2010 在尝试调试时给我语法错误,但没有语法错误!,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6380972/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com