[英]Pointers + structs + functions in C identifier undefined
所以这是我的代码,当我清楚地从另一个 function 指向它时,我不明白为什么我得到那个标识符“pers”是未定义的,据我所知,这是指针的实用程序。
我已经进行了一些研究,但似乎没有什么能解决我的问题,因为我正在处理结构和所有这些。
要求之一是所谓的“leer_persona();” 括号中不能有任何值
#include <stdio.h>
typedef struct{
int num;
char letra;
}tdni;
typedef struct{
char nom[20];
tdni dni;
}tpersona;
tpersona leer_persona();
void mostrar_persona(tpersona p);
int main(){
tpersona pers;
pers = leer_persona();
mostrar_persona(pers);
return 0;
}
tpersona leer_persona(){
int i=0;
int *fp;
fp = &pers;
谢谢。
Pers 在“main()”中有 function scope。 它在“main()”之外不可见。
https://www.geeksforgeeks.org/scope-rules-in-c/
Function scope 从 function 的开口处开始,到它的关闭处结束。
有关详细信息,请参阅此链接: C - Scope 规则
如果您想在另一个 function 中使用“pers”,您通常会将其作为 function 参数传递,例如tpersona leer_persona(tpersona * pers)
。 在此示例中,我通过引用传递参数“pers”,而不是通过值复制。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.