c - 除非我在开​​头声明变量,否则为什么会得到 "error undeclared identifier"?

标签 c visual-studio-2010

当我有以下内容时:

#include "stdafx.h"
#include<stdio.h>
int main()
{

int val1,val2;

printf("Enter the first value");
scanf("%d",val1);
scanf("%d",&val2);
int c;
c=val1 + val2;
printf(" the value is : %d", c);



return 0; // 0 means no error

 }

我收到错误未声明的标识符 c。另外,语法错误。失踪 ;打字前。

但是,如果我将上面更改为以下错误消失。请帮忙

#include "stdafx.h"
#include<stdio.h>

int main()
{

int val1,val2,c;

printf("Enter the first value");
scanf("%d",&val1);
scanf("%d",&val2);

c=val1 + val2;
printf(" the value is : %d", c);



return 0; // 0 means no error

}

我在 VS 2010 中运行 C。

最佳答案

在 C 中,至少在过去,变量声明必须位于 block 的顶部。 C++ 在这方面有所不同。

编辑 — 显然 C99 在这方面与 C90 不同(C99 在这个问题上与 C++ 基本相同)。

关于c - 除非我在开​​头声明变量,否则为什么会得到 "error undeclared identifier"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4774961/

相关文章:

c# - 获取通过 IVsHierachy 选择的项目的完整路径

visual-studio-2010 - VS2010和2012中的发布向导错误

c++ - 错误编译器,无法将参数 2 从 MyStruct1 转换为 const void*,用于 memcpy

c - printf 中变量地址的输出

vb.net - 我可以在 .NET 中通过 SqlConnection 设置 DEADLOCK_PRIORITY 吗?

c - 我如何告诉 Visual Studio/Microsoft 的 C 编译器允许在第一条语句之后声明变量?

c# - MySql.Data c# .net 库我应该使用哪个运行时?

c++ - 如何从 C/C++ 控制全局 OpenMP 设置?

c - C 中的递归函数,返回给定数字右侧的第 n 位数字

c - 如何将 pdf 文件作为背景导入 GtkDrawingArea