![]() |
1
1
这个解决方案是
非标准
请注意
|
![]() |
2
1
如果这些假设成立,那么解决方案是让您的程序将其当前版本写入日志文件。然后每个单独的日志条目可以通过
因此,当有人需要使用日志时:他们可以查看日志中的版本号,从源代码控制存储库中获取相应的源代码,并使用日志中的行号转到正确的源代码行。这给使用日志输出的人增加了一些负担。但是,如果记录的代码依赖于其他代码,或者受其他代码的影响,这些代码可能会随着版本的变化而变化,那么可能仍然需要源代码的历史状态。 此外,这样做的一个好处是,它消除了假设任何给定函数都将保持不变的需要,而这正是问题的一部分。因此该方法具有更广泛的应用前景。
如果程序版本通常存储在普通源代码中不易访问的地方,那么您可以创建一个预构建步骤,该步骤将提取版本并将其作为#define或const字符串写入一个简单的version.h文件。然后日志代码或宏可以自动使用它来始终输出程序的当前版本。 |
![]() |
3
0
通过修改堆栈思想,使用
这意味着你不需要
|
![]() |
Timo · 如果宏变量后跟构成有效标识符的字符,则不会展开宏变量 7 年前 |
![]() |
user3623498 · 在#if中更改变量时出现问题 7 年前 |
![]() |
einpoklum · 来自#cmakedefine替换的意外结果 7 年前 |
![]() |
Joseph Franciscus · C中预处理器方法的别名++ 7 年前 |
![]() |
stoper · 防止同一宏在多个转换单元中具有不同的定义 7 年前 |
![]() |
СеÑгей · MinGW中预处理器g++的奇怪行为 7 年前 |