gpt4 book ai didi

C - struct 中的 bool 数据类型导致异常

转载 作者:行者123 更新时间:2023-11-30 18:13:58 26 4
gpt4 key购买 nike

简单地说,我有以下代码(简化):

void Example()
{
struct AuctionVars auction;
memset(&auction, 0, sizeof(struct AuctionVars));
}

我有以下结构:

struct AuctionVars
{
float minBidIncrement;
int numAuctionItems;
float* auctionItemValues;
};

当我将其更改为:

struct AuctionVars
{
float minBidIncrement;
int numAuctionItems;
float* auctionItemValues;
bool isAuctionClosed;
};

我的程序引用或使用 AuctionVars 的地方都会出现很多错误。多变的。

我已经发现 Visual Studio 编译器使用 C89,并且不支持在代码块开头以外的任何地方声明变量,那么这是 C99 的另一个限制,即结构中不支持 bool 类型吗?或者我又犯了一个愚蠢的错误?

最佳答案

I have already found out that the Visual Studio compiler uses C99 and does not support declaring variables anywhere but at the beginning of code blocks, so is this another limitation of C99 where bool types are not supported in structs? Or am I making another one of my foolish mistakes?

不了解 Visual Studio,但 C99 支持 bool 类型。

FAQ list · Question 9.1

Traditionally, C did not provide a standard Boolean type, partly and partly to allow the programmer to make the appropriate space/time tradeoff.

C99提供_Bool类型和 bool 变量可以声明为

_Bool var;  

_Boolint类型。

除了定义 _Bool类型,C99还提供了一个 header ,<stdbool> ,这使得使用 bool 类型变得更容易。宏bool在此 header 中提供。您可以使用此 header 和宏 bool将 bool 类型定义为

#include <stdbool.h>
bool var;

关于C - struct 中的 bool 数据类型导致异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20159638/

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