问题描述
如果结构,函数和宏的数量最少,但要从源文件中排除它们,以将源代码转换为更简洁易读的格式并减少代码行数,怎么办?
即使未在源代码中调用数据,也可以通过检查二进制文件从总体上访问/查看结构,函数或宏/数据吗?如果可以的话?
出于可读性考虑,即使某些源文件未使用所有结构,函数和宏,也可以将源文件中的结构,函数和宏安全地剪切为多个源文件使用的头文件。 (用于较小的头文件)?
解决方法
结构,函数或宏/数据是否可以一般访问/查看 通过检查二进制文件,即使未在 源代码?
取决于您构建的内容。如果您构建一个库(.a,.so,.lib,.dll等),它们可能就在其中,并且该库中的所有内容都可以通过某种方式访问。如果您生成可执行文件,则链接器很可能会删除未使用的代码。
看看nm
出于可读性考虑,剪切结构,功能是否安全? 和宏从源文件转换为由 多个源文件
是,不是。将函数/结构的声明放在头文件中,并将其实现放在.c文件中。不要在一个标头中放置很多不相关的函数和结构。即使使用了其中的5%,您最终还是将所有这些声明包含在每个源文件中。这意味着编译器需要做更多的工作,链接器可能需要做一些额外的工作,而在阅读所有这些不必要的内容时,您和将来的程序员也需要做些额外的工作。
因此,猜测代码库中发生了什么,您可能希望将它们放在单独的头文件中。
使用宏时要格外小心,将它们放在头文件中时要格外小心。您大多数时候应该避免这种情况。
即使某些源文件未使用所有结构,功能 和宏
那很普遍。您也包括一些标准的C头文件,并且不使用其中的所有功能和结构,对吗?就像我说的那样,把所有东西都放在一起。