【发布时间】:2018-12-05 17:11:20
【问题描述】:
我有几个 C 源跟踪语句,比如
TRACE(23, "abc");
TRACE(24, "def");
数字 23 和 24 是从自动生成的列表中计算出来的标识符,每行包含一个字符串
...
"abc"
"def"
...
“abc”在第 23 行,所以我在适当的跟踪语句中写了 23。
预处理器生成我想要的输出
trace(23);
trace(24);
我认为应该可以以我只写的方式自动化它
TRACE("abc");
TRACE("def");
在 C 预处理期间,我想自动将字符串与生成的文件的适当行号交换,以便进入预处理器输出
trace(23);
trace(24);
我可以编写一个函数,它返回字符串“abc”的第 23 行,但我需要在预处理过程中激活它。有没有预处理器钩子或其他想法?
【问题讨论】:
-
请详细说明。 “我有资源”,请举例说明。 “生成的文件”请显示。 “我想...”,请为示例输入显示一些所需的输出。还请描述您尝试过的内容,以展示自己的一些研究工作。也许您可以展示您所做的某些事情,但并不完全是您想要的。一般尽量避免“这里有要求,请给出代码”的印象。
-
您这样做是为了达到什么目的?编译器宏
__LINE__或__FILE__可以提供帮助吗? -
它是一款适用于非常小型嵌入式系统的软件跟踪器。跟踪字符串不会进入目标。它们由 PC 工具动态加载。目标发送 23 并且主机知道它是“abc”。我知道
__LINE__和__FILE__,但我不知道他们在这种情况下如何帮助我。
标签: c string indexing c-preprocessor