2018年2月10日 星期六

C 錯誤時回報 當前所在位置的 檔案名稱、行數、函式名稱

C 錯誤時回報 當前所在位置的 檔案名稱、行數、函式名稱

C 沒有 C++ 的例外可以用多半就是用print回報信息,需要詳細知道所在位置可以用內建的Macro回報,方法如下
內建有這些
  • __FILE__ 檔案詳細名稱含路徑位置
  • __LINE__ 當前代碼的行數
  • __FILENAME__ 只回報檔名 (這個是我在 overflow 找到的方法)
#define __FILENAME__ strrchr("\\" __FILE__, '\\') + 1
#define POINT_IS_NULL(msg) \
    printf("%s \t\t # %s::%d --> \"%s()\" \n" , \
        (msg) , __FILENAME__, __LINE__, __FUNCTION__);

int main(int argc, char const *argv[]) {
    POINT_IS_NULL("point is NULL");
}
就可以回報所在的詳細位置了


參考

沒有留言:

張貼留言