gpt4 book ai didi

C -> 可以从自身引用结构吗?

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

我是一名 Java 程序员,并且是 C 风格结构的新手,我有一个结构,其中包含一个包含 switch case 的函数:

typedef struct
{
char name;
void myFunction()
{
switch(?)
{
case "y": break;
default: break;
}
}
}AXIS;

我想知道是否有办法让“?”传递给我的开关是 AXIS.name,无论我分配什么名称。

例如如果我有

AXIS Y={"y"} 

我希望 Y.myFunction() 调用 case y

在此问题上,我将不胜感激,谢谢。

最佳答案

您的代码有几个问题:

  • char name 是单个字符,不是字符串。
  • C 中不能有结构成员函数。
  • switch 不适用于字符串。

让我们先固定结构:

typedef struct
{
char name[10]; // Maximum allowed string is 9 characters.
} AXIS;

然后是函数:

void myFunction(AXIS * self) { // You need to pass the object pointer explicitly
if(strcmp(self->name, "y") == 0) { // Compare string with strcmp
// String was equal to "y"
}
}

最后是调用:

int main(void) {
AXIS y = {"y"};
myFunction(&y); // Give address of an object to function
return 0;
}

关于C -> 可以从自身引用结构吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26905033/

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