繁体   English   中英

C 标识符中的指针 + 结构 + 函数未定义

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM