我找不到使用预处理程序变量调试当前文件名的方法。根据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
[执行C0]时,添加两个指针,然后尝试将结果作为指针传递给字符串。该结果当然不是有效的以null终止的字节字符串,这意味着您具有undefined behavior。
由于您没有告诉我们"Filename: " + __FILE__
函数是什么,我们目前只能提供的帮助是您需要使用例如Log
:
sprintf
在C中,所有文字字符串(例如char filename_log[512];
sprintf(filename_log, "Filename: %s", __FILE__);
debug.Log(filename_log);
和"Filename: "
扩展为的字符串)都是不可修改的字符(包括终止符)数组。与其他数组一样,它们会衰减到指向其第一个元素的指针。这就是您添加的这些指针。