最完美解决C/C++中外部导入(Extern)结构体struct【每天一个小技巧】

本文阐述了在C/C++中如何正确地从外部文件导入结构体类型,避免出现未知类型错误。通过实例说明了如何定义并实例化结构体,以及如何在另一文件中通过extern关键字引用该结构体实例。

0. 引言

C/C++中由于结构体的方便性,如构建相同属性不同名称的变量或作为复杂函数的返回值等等。但会遇到从外部引入结构体的情况,这时候如果导入形式不对会出现无法引入的外部命令错误。

1. 解决方案

我们为什么要建立结构体?当然是为了方便整合属性变量,这时候其实就相当于你自己在基本变量基础上定义了属于自己的变量类型。而你想要外部导入结构体类型时,集成开发环境是不知道这是一种什么类型,因为它的设定中没有。
什么意思呢?试想为什么基本类型可以直接使用Extern命令导入,例如:

extern int iNumber1;
extern double dNumber2;

这是因为开发环境知道intdouble是怎样的形式,就会去找已有形式中的相同名称变量。
从这里我们得到启示,应该事先告诉开发环境结构体是怎样的形式,然后在外部引用。

1.1 举个例子

例如在student.h中定义了一个结构体,并实例化了一个对象:

struct student_im {
	char name[10];
	unsigned long idnumber;
	unsigned int age;
}studentA = { "li bai", 202005031, 18 };

然后想在school.h中使用studentA的信息,根据上述思想可以如下形式导入:

struct student_im {
	char name[10];
	unsigned long idnumber;
	unsigned int age;
};
extern struct student_im studentA 

即可成功外部引用结构体类型。

2. 总结

上述思想也告诉我们,我们写的代码最终是给集成开发环境看的,要让它知道你要干什么才是最重要的。而且我们知道函数是无法返回数组类型的,但是我们可以通过结构体进行封装达到效果。而Class类的概念也是定义属于自己的类型,所以你可以往深了想创造自己的语言风格。

如果对你有用,请点个赞吧。如果想了解更多小技巧,请关注我。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陶技者

为技术开源努力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值