不知道大家是否有看懂。
继续解释:
我写了一个头文件。对应的cpp文件肯定没有问题。(因为不是我写的)。写头文件的目的是为了能够在别的mfc 的cpp文件里用上对应的函数及指针。
头文件想要外扩展,因此内容如下:
extern struct EPHEMERISBLOCK;
extern EPHEMERISBLOCK *m_pGPSEphemeris;
extern int ReadBrodcastEphemeris(CString strEpheNam, int &EphemerisBlockNum);
在我另一个dlg的cpp文件里面。我想要使用中间那个指针以获取结构体内容。但是我发现如果将这个指针写成m_pGPSEphemeris[i]的形式的时候就出现了各种问题。同时还使得那个没有问题的Cpp文件也报错了。不知道如何一起解决这一串相关联的问题。虚心请教大牛。
如何在头文件里声明用它相关联的cpp文件里定义的结构体定义的指针。
答案:2 悬赏:40
解决时间 2021-03-23 07:28
- 提问者网友:你在我心中是最美
- 2021-03-22 07:15
最佳答案
- 二级知识专家网友:滚刀废物浮浪人
- 2021-03-22 08:33
没有定义类型实体,只是做了类型前向声明,一旦尝试解引用类型的指针,肯定报错。
这种对外接口,如果只前向声明类型,那么外部编译单位,只能通过你的cpp提供的函数来操作相关指针,而外部调用者,只能传递指针来实现操作。
否则,那就需要把类型实际定义,放在头文件中,公布给外部调用者。
Can you understand ?
这种对外接口,如果只前向声明类型,那么外部编译单位,只能通过你的cpp提供的函数来操作相关指针,而外部调用者,只能传递指针来实现操作。
否则,那就需要把类型实际定义,放在头文件中,公布给外部调用者。
Can you understand ?
全部回答
- 1楼网友:绝望伪装
- 2021-03-22 09:35
第二个文件如果include了第一个文件,那么第一个文件里面所有的被包含的文件也相当于在第二个文件里面被包含了。所以不用重新包含。
还有,你说那中情况是不会重复的。
一般情况下。文件都是这么写,无论你怎么弄都不会重复了
#ifndef __a_h__//这个宏一般就是你的文件名.变成下划线,前后各加两个下划线
#define __a_h__
你要写的代码的内容
#endif
你这样写 无论你怎么包含这个文件。都不会出现重定义的情况。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯