原创 c++ malloc calloc new [] 及差異

三者皆可開闢內存,new []是c++特有;速度calloc>new []>malloc。 malloc開闢空間並沒有查擦寫內存,calloc增加對內存擦寫初始化0的過程。 malloc基址寄存器向前位移時沒有執行取值寄存器擦寫內存值操作

原创 分包處理方案

可以根據host判斷是否是有效請求,判斷前4個字節和前3三個字節匹配post或get進行相關邏輯處理。 這種讀取是底層實現的方案。如果沒有查詢到\r\n\r\n就繼續拼接接收的數據到 查詢到爲止。

原创 cout printf 區別

cout多線程執行寫入會隨機排列字符串。 printf多線程執行寫入會順序排列字符串。 舉例 cout: threthrad1st eadart...1stthra ead1start...rt... printf: thread1sta

原创 c++ 動態庫 顯式加載 隱式加載

window API 動態庫隱式加載方式。 //庫函數定義 int add(int a,int b) { return a+b; }  用戶需要拿到庫文檔,文檔記錄了dll內的每個函數名和參數,利用函數指針指向庫函數進行使用。

原创 程序優化番外篇

c++ 操作字符串時可以臨時修改任意位置單個或多個字符,修改前先記錄下原有位置每個字符後替換結束符或其他字符; 執行自己需要的操作後可還原原有位置字符。這樣操作字符串可以降到最小消耗,提升運行效率。

原创 c++ 數字字符串互轉

c++ stdlib.h內有原生的函數:數字字符串互轉 //字符串轉數字 int i = atoi("66"); printf("%d",i); double f =atof("2013.14"); printf("%lf",f);

原创 c++動態庫靜態庫

動態庫編譯程序只加載連接符號,運行程序時通過符號加載對應庫文件函數。 靜態庫編譯程序連接符號和函數體同時打包到一起,運行程序時也是通過符號進行加載函數體。 共同點:內存啓動原理是現用現開闢;並且跟隨類創建自己獨立運行內存空間;類似多個子類

原创 c++ strcat

原创 strlen sizeof 快

原创 內存釋放誤區

1.刪除了非new的對象引用地址。 2.STL容器你真的會用嗎,clear()前你真的釋放了所有內存麼。   解決方法記錄對象地址,後面銷燬。

原创 mysql庫與庫的表數據備份或移動

DROP TABLE IF EXISTS water1.`sys_collection`;//刪除表 CREATE TABLE water1.`sys_collection` LIKE water.`sys_equipment`;//

原创 sprintf itoa

itoa要比sprintf快。具體自己測試吧。