本篇 ShengYu 介紹 C/C++ __FILENAME__
macros 巨集的用法,C/C++ 標準的預定義巨集裡沒有原始檔檔名 __FILENAME__
巨集,只有原始檔檔案路徑 __FILE__
巨集,以下內容介紹透過一些方法來得到 __FILENAME__
巨集。
C/C++ 標準的預定義巨集 macros 中有 __FILE__
,通常是印出該原始檔的絕對路徑,例如:1
/full/path/to/file.c
但是如果只想印出原始檔的檔名的話,像下面輸出這樣,要怎麼做呢?1
file.c
由於 C/C++ 標準的預定義巨集沒有 __FILENAME__
這樣的巨集可以使用,那我們就自己作一個 __FILENAME__
巨集,
如下範例,原理是用 strrchr 從右邊開始尋找 '/'
有找到的話就回傳找到的指標+1,使用 strrchr 需要加入標頭檔 #include <string.h>
,1
如果是 Windows 平台的話,就將 '/'
換成 '\\'
,如下範例,1
以上就是 C/C++ __FILENAME__
macros 巨集介紹,
如果你覺得我的文章寫得不錯、對你有幫助的話記得 Facebook 按讚支持一下!
參考
https://stackoverflow.com/questions/8487986/file-macro-shows-full-path
其它相關文章推薦
如果你想學習 C++ 相關技術,可以參考看看下面的文章,
C/C++ strrchr 用法與範例
C/C++ 新手入門教學懶人包
C/C++ 字串搜尋的3種方法
C/C++ strstr 用法與範例