C 之調用函數的問題

問題
   
    這個其實大家都知道,我也知道,問題是我有時候就在這個地方跌倒。調用函數最必須注意的是就是argument的數量和類型,傳址或是傳值。
   
    函數argument的數量,類型與你的提供的不一致,99%都是問題的。
   
    這個我知道,昨天我寫程序的時候又碰到了類似的問題,出錯提示:segment dumps.這個錯誤其實我的變量有問題。
   
    可是我一直沒有想通爲什麼那個變量有什麼問題。知道今天早上,我恍然大悟,還是出在調用函數上。
   
    這個問題很簡單,我使用的是我老闆的函數庫,當前位置,這個變量處於數據流的末端,我將這個變量給了一個函數,然後返回這個變量。
   
    但是我需要原先沒有處理的數據,進行下一步的操作。所以我想當然地將返回值給了一個新的變量,問題來了。
   
    解決方案
   
    程序就像流水線,數據就像產品。
   
    我把流程的數據給了一個函數(相當於半成品給一個加工車間),並處理。那麼得到的仍然是原先的東西,只不加工了下。這不符合我的要求,我的是一個沒有處理的,和一個處理過的。
   
    這個問題有很多種解決的辦法
   
    1. 給函數之前,複製這個數據給一個新的變量。
   
    這也要看具體情況,我的變量擁有一個複雜的數據結構,導致失敗,也許我沒有看懂這個類相應的操作符。
   
    2. 修改函數
   
    在函數裏,新建一個變量,將處理好的結果給它。原先的數據就不會被修改。返回這個新建的變量,即可。
   
    我採用了第二種方法,也許還有其他的方法,tbw我不知道而已。
   
    感想
   
    雖說,我早先就明白,程序就像工廠,函數就像車間,數據就像原材料,我們要的是產品。
   
    可是問題往往會這麼多,幾乎不可能一次編譯就通過。
   
    總會出現類似思路的問題,函數問題,銜接問題,類型匹配問題等等。就像原材料被加工成一個劣質品甚至加工的中途就不知所蹤。
   
    所以,只有多想,多實踐纔是王道。就像一個道理,大家都明白,不一定所有的人悟到它的真諦。

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章