用 weak 属性在 c 中编写测试代码是不好的做法吗?

Is it bad practice to use the weak attribute to write test code in c?

在生产代码中使用 weak 属性以便测试代码可以覆盖函数是一种好习惯吗?

我不知道这是否好的做法,但是有一些方法可以在不干扰生产代码的情况下覆盖测试代码中的函数:

  • 使用重新定义您希望覆盖的函数名称的宏
  • 使用LD_PRELOAD
  • 使用在调试模式下展开为 __weak 而在生产模式下展开为空的宏。