大佬教程收集整理的这篇文章主要介绍了如何处理typedef而不在头文件中包含头文件,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
如果我在某处使用新类型,我将myType.h包含在我的源文件中.精细.
但是如果我想在某个地方使用新类型作为函数签名中的参数,我需要将myType.h包含在包含该函数的模块的头中.使用一个或另一个typedef,这对我来说似乎没问题,但是我拥有的类型越多,我需要的头文件中包含的内容越多,可能包括更多标头,同时使用包含其他自己类型的类型.这导致我称之为“依赖地狱”.
我知道有可能将这些类型作为void-pointer传递,然后将它们放回到函数内部,但随后我从编译器中删除了重要的类型检查.
更糟糕的是,extern在这里被认为是最糟糕的做法..
编辑:
详细地:
myType.h:
#include "otherType.h" typedef struct { char Name[32]; int Size; otherType someType; } myType; processSomeHow(myType _myType,int newSizE);
otherType.h
#define SOME_CONST 32 typedef struct { [...] } otherType;
someModule.h:
#include "myType.h" int specialProcessSomeHow(myType _myTypE);
someModule.c:
int specialProcessSomeHow(myType _myTypE) { int Size = 64; return(processSomeHow(_myType,SizE)); }
现在我将someType.h间接包含在someModule.h中,更糟糕的是,我将它包含在每个模块中,包括someModule.h.现在我到处都有一个SOME_CONST,很难弄清楚它来自哪里.我必须保持两个包括树.
type.h - myType.h -- someType.h - otherType.h - List item
以及你的CONST问题:
如果你只需要一个c.file.不要在HeaderFile中使用它们.
你可以将它们命名为“MY_TYPE_SOME_CONST”或“OTHER_TYPE_SOME_CONST”;
//编辑:
#ifndef TYPE_H_ #define TYPE_H_ #include myType.h #include someType.h #include otherType.h #endif /* TYPE_H_ */
以上是大佬教程为你收集整理的如何处理typedef而不在头文件中包含头文件全部内容,希望文章能够帮你解决如何处理typedef而不在头文件中包含头文件所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。