gpt4 book ai didi

c - 在 C 中传递枚举

转载 作者:太空宇宙 更新时间:2023-11-04 02:20:21 25 4
gpt4 key购买 nike

这似乎是一个简单的问题,但我在编译时遇到了错误。我希望能够将枚举传递给 C 中的方法。

枚举

enum TYPES { PHOTON, NEUTRINO, QUARK, PROTON, ELECTRON };

调用方法

makeParticle(PHOTON, 0.3f, 0.09f, location, colour);

方法

struct Particle makeParticle(enum TYPES type, float radius, float speed, struct Vector3 location, struct Vector3 colour)
{
struct Particle p;
p.type = type;
p.radius = radius;
p.speed = speed;
p.location = location;
p.colour = colour;

return p;
}

我在调用方法时遇到的错误:

incompatible types in assignment

最佳答案

在这个缩减示例中,它对我来说编译得很好:

enum TYPES { PHOTON, NEUTRINO, QUARK, PROTON, ELECTRON };

void makeParticle(enum TYPES type)
{
}

int main(void)
{
makeParticle(PHOTON);
}

您确定在 makeParticle 的定义和调用中都使 TYPES 的声明可用于代码吗?如果你这样做是行不通的:

int main(void)
{
makeParticle(PHOTON);
}

enum TYPES { PHOTON, NEUTRINO, QUARK, PROTON, ELECTRON };

void makeParticle(enum TYPES type)
{
}

因为 main() 代码还没有看到 TYPES。

关于c - 在 C 中传递枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/809373/

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