我想打印我项目中使用的文件名。
但是,如果我使用__FILE__
,它会打印整个路径以及文件名,这在我的情况下很长,并且会干扰日志缩进。
任何人都可以帮助我在项目中使用通用参数打印文件名。
答案 0 :(得分:2)
在您的C代码中,您可以使用表达式__FILE__
代替basename(__FILE__)
;但是,这样做的缺点是每次都会调用basename
。
或者,使用类似
的命令编译path/foo.c
gcc -Wall -c -g -DBASE_FILE=\"foo\" path/foo.c
(您可以使用通用的make
规则)
然后在代码中使用BASE_FILE
代替__FILE__
。
使用GCC,您可以使用__BASE_FILE__
代替__FILE__
答案 1 :(得分:-1)
考虑使用basename。我认为预处理器不会给你提供比__FILE__
更多的东西。