c語言是過程式的語言,**執行一般是 從前到後.
但是比如使用者按了ctrl+c 中斷了程式,程式就沒辦法執行某些結束的**了.
可以使用atexit 函式,在main()靠前的地方加上這些**,其後 如果程式 不管怎麼中斷,都會執行atexit**的...如果atexit函式裡面有個死迴圈,我想 你ctrl+c 是不太可能結束程式的...除非 關閉視窗
或者 ----------- 使用中斷 結束它.
中斷 很強大.哦 這裡的中斷 其實我想說 是 signal訊號量.
他的用法 很強大,具體可以man signal 來檢視.
其中atexit(void*func)如果有多個,以第乙個為準,另外,後面如果想接觸atexit()該怎麼辦呢??
這個簡單的函式 其實 也不簡單呢...他應該和乙個訊號量是繫結的...
C語言零碎記錄之extern
最近遇到了乙個問題,就是乙個標頭檔案有乙個static的變數,編譯的檔案有幾個.o的,他們都引用了這個標頭檔案,但是當列印出這個變數 經過修改了 的值得時候,居然不一樣,列印出位址來,位址居然也不一樣。兩個不同位址,乙個相同的變數名?究竟怎麼回事情呢?這個變數許多檔案要用。但是放到 件,又是個問題啊...
零碎的記錄
高內聚 類與類之間的關係而定,高,意思是他們之間的關係要簡單,明了,不要有很強的關係,不然,執行起來就會出問題。乙個 類的執行影響到其他的類。低偶合 類內部的方法而言。把程式的功能盡量分散,別在乙個類裡只寫乙個或很好的方法,因為那樣會給你的除錯等帶來很多問題 出了錯你都不知道在什麼地方。通用模組的設...
記憶體管理 零碎記錄
1.以下方法中區域性變數myarray和全域性變數 sqldata.array引用了同一塊記憶體 當這個方法過了,這個區域性變數的指標就被銷毀,引用計數就由2變成1,所以這裡有乙個點要注意,在乙個方法中開了一塊記憶體,過了這個方法,是區域性變數的指標沒了,記憶體銷不銷毀看的是引用計數,跟方法過了沒有...