使用头文件中定义的宏

sud*_*03r 2 c c++ header-files

我在头文件中有一个宏定义,如下所示:

// header.h
ARRAY_SZ(a) = ((int) sizeof(a)/sizeof(a[0]));
Run Code Online (Sandbox Code Playgroud)

这在一些头文件中定义,其中包含一些更多的头文件.

现在,我需要在一些没有其他理由包含的源文件中使用此宏header.h或包含任何其他头文件header.h,因此我应该在源文件中重新定义宏或只是包含头文件header.h.

后一种方法会影响代码大小/编译时间(我认为是),还是运行时(我认为没有)?

你的建议!

pli*_*nth 5

包括头文件或将其分解为更小的单元,并将其包含在原始标头和代码中.

至于代码大小,除非你的标题做了一些非常不明智的事情,比如声明变量或定义函数,否则它们不应该影响内存占用,如果有的话.它们会在一定程度上影响您的编译时间以及污染您的名称空间.