- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在尝试在 C 程序中使用 stdbool.h 库文件。然而,当我尝试编译时,出现一条错误消息,指出智能感知无法打开源文件 stdbool.h。
谁能告诉我如何让 visual studio 识别这个?这个头文件是否有效?我正在阅读一本关于学习 C 编程的书。
最佳答案
typedef int bool;
#define false 0
#define true 1
工作正常。 Windows header 做同样的事情。绝对没有理由担心在 int
中存储两位值所消耗的“浪费”内存。
正如 Alexandre 在评论中提到的,Microsoft 的 C 编译器(与 Visual Studio 捆绑在一起)doesn't support C99并且可能不会。不幸的是,因为 stdbool.h
和许多其他更有用的功能在 C99 中受支持,但在 Visual Studio 中不受支持。它停留在过去,仅支持称为 C89 的旧标准。我很惊讶你在尝试在 block 开头以外的地方定义变量时没有遇到问题。每当我在 VS 中编写 C 代码时, 都让我很反感。
一种可能的解决方法是将 Visual Studio 配置为将代码编译为 C++。然后,几乎您在 C99 书中阅读的所有内容都可以在编译器不阻塞的情况下正常工作。在 C++ 中,bool
类型是内置的(尽管它在 C++ 模式下是 1 字节类型,而不是像 C 模式下那样的 4 字节类型)。要进行此更改,您可以在 IDE 中编辑项目的编译设置,或者只需将文件重命名为具有 cpp
扩展名(而不是 c
)。 VS会自动设置相应的编译模式。
现代版本的 Visual Studio(2013 及更高版本)改进了对 C99 的支持,但仍不完整。老实说,如果您想学习 C(以及现在的 C99),更好的解决方案是选择一个不同的编译器。 MinGW如果您在 Windows 上运行,这是一个不错的选择。很多人喜欢 Code::Blocks开发环境
关于c - 试图在 VS 2010 中使用 '#include <stdbool.h>',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8548521/
我正在尝试读取击键然后停止代码。在 C 中。 #include #include #include #include bool starting() { char c; if (k
关闭。这个问题需要details or clarity .它目前不接受答案。 想改进这个问题吗? 通过 editing this post 添加细节并澄清问题. 关闭 4 年前。 Improve t
我想在我的系统上找到 _Bool 定义,因此对于缺少它的系统我可以实现它。我在这里和其他网站上看到过各种关于它的定义,但我想检查系统以获得最终定义。 小问题,因为我找不到 _Bool 的定义位置,甚至
在 stdbool.h 中,true 和 false 只是整数。为什么不签名?有绩效动机吗? 最佳答案 使用类型 int对于值 false和 true使他们同意由逻辑否定运算符(!)、关系运算符(、=
假设我像这样在“struct.h”中定义一个结构 struct box { int value; } 我在另一个文件中使用该结构说“math.c” #include "struct.h" st
这是我的代码 主程序 #include #include #include "func.h" int main () { int counts = 10; printf("Expected
每当我需要 boolean 类型时,我都会被告知要么创建一个,要么使用 stdbool.h 更好。 由于 stdbool.h 使用 typedef bool _Bool,是否有理由使用 header
我不知道为什么会这样。有没有人遇到过这个?我使用的是 Netbeans 8.2,程序在 Debug模式下运行。 #include #include #include #define N 100
我还是 C 新手。我有一个关于源文件和头文件的问题。我有一个像这样的头文件: #ifndef MISC_H_ #define MISC_H_ #define BYTE 8 #include #inc
我的计算机科学老师给了我一个关于操作数组的作业模板。这包括 和图书馆。这两者似乎没有联系。使用该库时,我总是必须通过右键单击 Eclipse 文件资源管理器中的文件然后转到属性> C/C++ Buil
在一个项目中,我在 C++ 和一个使用 stdbool.h 定义的 C 库之间进行交互。 #ifndef _STDBOOL_H #define _STDBOOL_H /* C99 Boolean ty
我正在尝试在 C 程序中使用 stdbool.h 库文件。然而,当我尝试编译时,出现一条错误消息,指出智能感知无法打开源文件 stdbool.h。 谁能告诉我如何让 visual studio 识别这
我在 debian 上遇到了 eclipse cdt 3.8.0 格式化程序的问题。当它自动格式化我的代码时,函数返回 bool 和 block 注释之间的换行符被删除,如下所示:这是 C 源文件中的
在被编译器错误指出后,我注意到 clang 的 stdbool.h文件包括(除其他外)以下几行: #define bool bool #define false false #define true
我刚刚注意到 gcc 和 clang 似乎都对 stdint.h 使用 typedef,但对 stdbool.h 使用 #define。 示例:clang's stdint.h #ifdef __I
我正在尝试在 Solaris 上安装 Node.JS。这是开箱即用的 Solaris 9/10 x86(最新的是 2010 年 9 月)并且仅使用默认包。 我遵循的指示在这里:https://gith
我的印象是 C 或 C++ 中的 bool 类型是 typdef'ed 整数,因为它在机器级别(字的大小等)处理起来“更容易”。但我只是执行了一个 sizeof,令我惊讶的是,它们返回了 1(字节)。
我是一名优秀的程序员,十分优秀!