C mingw中的变量声明

abhithakur88

我从一本书中读到C编程,该书说所有变量必须在函数的开头声明。我尝试了以下代码,但未发出任何错误。我正在使用mingw和代码块。代码如下:

#include <stdio.h>

int main()
{
    int i=10;
    printf("%d\n",i);

    int j=20;
    printf("%d\n",j);

    return 0;
}

我是否需要更改任何编译器设置或使其与本书给出的标准兼容的内容?

我正在使用-std = c89编译器选项。请参阅下面的编译消息:

-------------- Clean: Debug in HelloWorld (compiler: GNU GCC Compiler)---------------

Cleaned "HelloWorld - Debug"

-------------- Build: Debug in HelloWorld (compiler: GNU GCC Compiler)---------------

mingw32-gcc.exe -Wall -std=c89  -g     -c D:\MyCodeBlocksProjects\HelloWorld\main.c -o     obj\Debug\main.o
mingw32-g++.exe  -o bin\Debug\HelloWorld.exe obj\Debug\main.o    
Output size is 68.53 KB
Process terminated with status 0 (0 minutes, 0 seconds)
0 errors, 0 warnings (0 minutes, 0 seconds)
Yu Hao

所有变量都必须在函数开头声明。

确切地说,必须在block的开头声明它们这仅在C89中适用。C99已删除此限制。因此,您可以将编译器更改为严格的C89模式。例如,对于GCC,它是-std=c89选项。要获得该标准所需的所有诊断信息,您还应该指定选项-pedantic

为了演示我在块开头的含义,这是合法的C89语法:

void foo()
{
    int x = 1;
    x = x + 1;
    {
        int y = 42;  /**OK: declaration in the beginning of a block*/
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在C / C ++中声明变量

来自分类Dev

在C中声明64位变量

来自分类Dev

c中变量声明的含糊行为

来自分类Dev

在C中声明vs定义变量

来自分类Dev

C ++中未知的构造/变量声明

来自分类Dev

在C ++中声明抽象类型的变量

来自分类Dev

在C ++中的类的函数内部声明变量

来自分类Dev

C ++中的函数和变量声明

来自分类Dev

变量声明中的差异-目标C

来自分类Dev

在类C中声明变量的问题

来自分类Dev

如何在bash -c中声明变量

来自分类Dev

在 C 中声明循环/IF 结构之外的变量

来自分类Dev

关于C vrs C ++中的结构变量声明

来自分类Dev

C#变量声明

来自分类Dev

变量的C#声明

来自分类Dev

C ++未声明的变量

来自分类Dev

在头文件或C源文件中声明全局变量

来自分类Dev

循环和运行时错误中的C ++变量声明

来自分类Dev

在C ++中重新声明变量会花费什么吗?

来自分类Dev

C#无法在结构中声明指针变量

来自分类Dev

C ++在同一行中声明多个变量

来自分类Dev

实例变量声明的顺序在Objective-C中是否重要?

来自分类Dev

如何在C#中声明SQL变量

来自分类Dev

如何在C中声明全局变量?

来自分类Dev

用C ++声明标头或.cpp中的类变量?

来自分类Dev

C ++中的构造函数内部的变量声明和赋值

来自分类Dev

在标头中声明变量并在.c中定义

来自分类Dev

如何在C ++中合法声明向量变量?

来自分类Dev

在C中声明匿名结构的局部const变量