+-

我有一个C库,可以做一些数值工作.主要参数是段数.对于速度而言,段数为const的因素是3,但是我想在编译时使用-DSEGMENTS 32来定义它.标题如下所示:
#ifdef SEGMENTS
const int segments = SEGMENTS
#else
const int segments = 20
#endif
这样可行.但是,链接到这个库的程序没有得到-DSEGMENTS,因此段总是20.没有const我知道解决方案,但我不知道.如果可以使用cmake,我可以想象一些extern技巧或在预编译后安装标头.
最佳答案
如果您希望其他库从外部获取值,您应该在标头中将其声明为external:
extern const int segments;
您可以像上面描述的那样在一个代码文件(.cpp)中定义它:
#ifdef SEGMENTS
const int segments = SEGMENTS
#else
const int segments = 20
#endif
点击查看更多相关文章
转载注明原文:c – 在const int上定义,但将值放在已安装的头文件中 - 乐贴网