[Linux] 函式原型不合造成的意外 crash 問題
今天遇到了奇特的 crash 問題…
修改了程式之後,在 Linux 上編譯成功,執行起來卻掛掉了…
找了半天,最後才發現是函式原型 (function prototype) 跟真正的函式不一樣導致的~
沒想到編譯器沒有能找出這樣的問題,真是令人意外!
不過也有可能是因為我們用的編譯器有點舊了… 😛
原本的函式是長這樣:
bool parse_result_xml (const char* sz_file_path)
{
// do something here
{
// do something here
return true;
}
而原本也有一個相對應的函式原型,運作良好:
extern bool parse_result_xml (const char* sz_file_path);
後來因應需要而改動函式,多加了一個參數:
bool parse_result_xml (const char* sz_file_path, std::map<std::string, std::string>* p_map_name_value_pairs)
{
// do something here
{
// do something here
return true;
}
但相對應的函式原型沒有改到…
奇怪的是編譯時沒有問題!執行的時候才壞掉了~~
是一個值得小心的問題呀…是有可能潛藏 crash 的地方~
(本頁面已被瀏覽過 158 次)