c - 这是正确的 C 声明吗?如果是这样,为什么它不起作用?

标签 c variables declaration

我正在根据一本教 Unix 和 Windows 的“C”的教育书籍编写演示程序。然而,有时我会遇到一些代码,当我准确输入时,它并不想工作。

例如。

#include <stdio.h>

int main()

{
    /*This next line is the error */

    int num = 2, bool = 0;

    if ( (num==2) && (!bool) )
    {
         printf("The first test is untrue\n");
    }
    else if( (num==2) && (!bool) )
    {
         printf("The second test is true\n");
    }
    else if( (num==2) && (bool==0) )
    {
         printf("The third test is true - but unreached\n");
    }
    return 0;
}

无论如何,就像我在标题中提到的,我很好奇我是否正确声明了这些变量。我使用的是 Windows 操作系统 (7)。

最佳答案

我认为 Stack Overflow 的代码着色实际上可以为您找到错误。尽管 ANSI C 没有 bool 关键字(尽管 C99 将 _Bool 保留为关键字),但很可能您使用的编译器扩展了标准并定义了 bool 关键字,特别是因为它确实存在于 C++ 和其他 C 派生语言中。解决方案很简单:要么强制您的编译器符合 ANSI,要么只更改变量名。

关于c - 这是正确的 C 声明吗?如果是这样,为什么它不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6694287/

相关文章:

JavaScript 日期变量赋值

python - 如何将 uint8_t 从 python 传递到 C?

c - 在声明 `int foo() {}` 之后定义 `int foo(void) {}` 与 `int foo(void);`

c++ - 为什么我在带有 OpenGL 核心配置文件的窗口上看不到红色三角形?

c - 结构成员声明为 ": 1 "

c# - 仅仅声明一个简单类型的变量会分配内存吗?

C++重载运算符声明和定义问题

c - 将数据类型输入设置为 MAX+1 值的单元测试

javascript - 通过用户输入更改变量的值并在不同页面上重新使用它

bash 命令的子字符串而不是变量?