C中的typedef行为 为什么我在这个代码中会出错?即使我不链接但只编译它仍然会出错。为什么编译器不考虑它存在于另一个文件中的可能性? 有人能解释一下编译器是如何处理typedef语句的吗
提前谢谢C中的typedef行为 为什么我在这个代码中会出错?即使我不链接但只编译它仍然会出错。为什么编译器不考虑它存在于另一个文件中的可能性? 有人能解释一下编译器是如何处理typedef语句的吗,c,C,提前谢谢 typedef struct p* q; int main() { struct p{ int x; char y; q ptr; }; struct p p={1,2,&p}; printf("%d\n",p.ptr->ptr->x); return 0; } ps:取消对不完整类型的引用是我在gcc中遇到的错误。main外部的“stru
typedef struct p* q;
int main()
{
struct p{
int x;
char y;
q ptr;
};
struct p p={1,2,&p};
printf("%d\n",p.ptr->ptr->x);
return 0;
}
ps:取消对不完整类型的引用是我在gcc中遇到的错误。main外部的“struct p”和main内部的“struct p”是不同的类型,因为它们在不同的范围中定义。如果您将两个声明都放在main之外或都放在main之内,编译器将接受它
当您在函数内部定义某个内容时,您会说“这是我在函数内部使用的定义;它不适用于函数外部的任何内容。”您介意分享您遇到的错误吗?您应该指定错误是什么,以便人们能够最好地了解发生了什么。
struct p
内部main
和外部是不同的!