c++ - 使用头文件中定义的宏

标签 c++ c header-files

我在头文件中有这样一个宏定义:

// header.h
ARRAY_SZ(a) = ((int) sizeof(a)/sizeof(a[0]));

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

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

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

您对此的建议!

最佳答案

包含头文件或将其分解成更小的单元,并将其包含在原始头文件和您的代码中。

至于代码大小,除非您的 header 做了一些非常不明智的事情,比如声明变量或定义函数,否则它们不应该对内存占用产生太大影响,如果有的话。它们会在一定程度上影响您的编译时间并污染您的 namespace 。

关于c++ - 使用头文件中定义的宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2592552/

相关文章:

c++ - 带有双括号的 decltype((x)) 是什么意思?

c++ - 字符串在 vector 数组中被复制

c - 如何在 c-未定义的引用中将 strlcpy 链接到 `strlcpy'

c++ - 为什么我的 WinCE 应用程序中没有 std::bad_alloc?

c++ - 使用一个 ifstream 变量读取多个文件

c - 截屏代码产生黑色位图

c - 如何计算范围号 1 到 n 中 0 或 1 的总出现次数?

使用带有 gcc 和自排序列表的 .h 文件进行编译

c++ - Vector.h 头文件(使用 Stanford C 库)已损坏或无法使用

java - 为什么 Objective-C 使用头文件而不是像 Java 那样使用单文件类?