以下是我的代码:
typedef struct Alpha {
int number;
} Alpha;
void setnumber(){
Beta->number = 1;
}
int main()
{
Alpha Beta;
setnumber();
return 0;
}
这只会输出“错误:未在此范围内声明 Beta”
我该如何声明它才能起作用? (不改变 typedef、setnumber 和 main 的顺序)(我可以以某种方式预先声明一些东西吗?如果是,那么什么以及如何?)
最佳答案
您可以这样做,其中 main
将 Beta
的地址传递给函数。
#include <stdio.h>
typedef struct Alpha {
int number;
} Alpha;
void setnumber(Alpha *Beta) {
Beta->number = 42;
}
int main(void) {
Alpha Beta = {0};
setnumber(&Beta);
printf("%d\n", Beta.number);
return 0;
}
关于c - 一个包含结构体的函数,该结构体在以下函数中声明?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53748161/