c - 一个包含结构体的函数,该结构体在以下函数中声明?

标签 c function struct declaration

以下是我的代码:

typedef struct Alpha {
int number;
} Alpha;

void setnumber(){
    Beta->number = 1;
}


int main()
{
    Alpha Beta;
    setnumber();
    return 0;
}

这只会输出“错误:未在此范围内声明 Beta”

我该如何声明它才能起作用? (不改变 typedef、setnumber 和 main 的顺序)(我可以以某种方式预先声明一些东西吗?如果是,那么什么以及如何?)

最佳答案

您可以这样做,其中 mainBeta 的地址传递给函数。

#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/

相关文章:

c++ 函数参数编辑

c - Qsort 对结构数组进行排序

c - 结构的各种typedef之间的区别

c - header 中 typedef 的限制,源代码中定义的结构

c - 管道 stderr 到缓冲区

c++ - 使用逗号运算符是一种好习惯吗?

c - 如何使用 struct sigaction 和 struct itimerval 一次处理两个信号?

python - 一个函数中的一个函数是否会比单独定义这两个函数占用更多的 RAM 内存?

c - C是否必须用科学计数法计算出一个数字?

function - 问题是我的函数还是我尝试使用的数据集?