______宏返回空字符串

问题描述 投票:0回答:1

我找不到使用预处理程序变量调试当前文件名的方法。根据this source,我需要的只是标准的预定义宏__FILE__,但是当我尝试它时,它返回一个空字符串

[我还发现this,根据该__FILE__宏应返回当前文件的名称或根文件的空字符串,但我无法真正分辨出当前文件与根文件之间的区别。

其余的预定义宏正在按预期方式工作。

这两行:

debug.Log("Time: " + __TIME__)
debug.Log("Filename: " + __FILE__)

返回

Time: 17:36:50
Filename: 

我需要他们返回

Time: 17:36:50
Filename: filename.mrs
c macros c-preprocessor preprocessor
1个回答
0
投票

[执行C0]时,添加两个指针,然后尝试将结果作为指针传递给字符串。该结果当然不是有效的以null终止的字节字符串,这意味着您具有undefined behavior

由于您没有告诉我们"Filename: " + __FILE__函数是什么,我们目前只能提供的帮助是您需要使用例如Log

sprintf

在C中,所有文字字符串(例如char filename_log[512]; sprintf(filename_log, "Filename: %s", __FILE__); debug.Log(filename_log); "Filename: "扩展为的字符串)都是不可修改的字符(包括终止符)数组。与其他数组一样,它们会衰减到指向其第一个元素的指针。这就是您添加的这些指针。

© www.soinside.com 2019 - 2024. All rights reserved.