gpt4 book ai didi

c - 标题与。静态库

转载 作者:行者123 更新时间:2023-12-02 01:34:54 25 4
gpt4 key购买 nike

我计划编写一些实用程序代码以供在其他项目中使用,但我怀疑是将其作为主要 header 代码、带有 header 的静态库只公开接口(interface)还是介于两者之间。大多数代码将是简单的函数,将其他标准函数包装起来,但也会有一些更大的函数。

我想我主要理解 header 方法和静态库方法之间的区别:

对于标题:

  • 所有代码都在标题中
  • 编译器更好地内联代码
  • 每个函数在每次使用时都必须编译

对于静态库:

  • 库和 header 之间的混合代码
  • 编译器内联代码的机会更糟
  • 编译一次,忘记

我一直在看一些代码,我已经看到了两种方法,但我不知道哪种更好。有什么想法吗?

最佳答案

通常可以编写您的 header ,以便可以使用宏有条件地包含整个库(用于在一个单元中编译)仅声明(用于链接静态/共享对象或编译为单独的单位)在用户的选择。使用这样的宏有一个额外的好处,假设存在单独的库源和/或对象,可以将选择推迟到编译之前,并由构建工具控制。这样做的明显缺点是它可能会使您的代码变得一团糟,以及使用宏进行条件编译所带来的所有复杂性和认知压力。

任何给定的选项(header/header+source/static-lib/shared-lib/etc.)是否合适,或者上述选项是否有用甚至可能,取决于你在做什么。

关于c - 标题与。静态库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31812914/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com