原创 顯示dos命令ping和tracert等輸出結果中的ip對應的地域名稱
公司老大今天使用了dos命令ping,他想看到其中ip地址對應的地域名稱。 如dos下命令ping www.qq.com的輸出結果是: 正在 Ping www.qq.com [113.108.20.50] 具有 32 字節的數據: 正在
原创 opensuse12.2的gdb不能自動加載.gdbinit的解決方法
個人使用gdb調試程序的時候,喜歡在當前目錄下先寫一個.gdbinit,直接運行一個"gdb"命令,就可以快速調試了。 最新的opensuse12.2的gdb版本是GNU gdb (GDB) SUSE (7
原创 用盛金公式求解一元三次方程
解一元三次方程一般用盛金公式求解,算法高效且求出來的解精確。 百度百科關於盛金公式有如下解釋: 盛金公式 Shengjin'
原创 sdk的windows版本
之所以叫作sdk的windows版本,是因爲我有一個linux版本的linux版本。 windows版本的sdk有以下數據結構: 1 可伸縮性hashtable 2 由紅黑樹實現的map 3 多級hash(tencent非常常用的一種數據
原创 使用vim分割窗口時如何改變窗口的尺寸
使用vim編程時候,不可避免的要分割窗口。 如果要水平的平分窗口,可以使用”:split“命令,如果要改變窗口尺寸,可以用ctrl + w + +\- 來改變窗口尺寸,這個操作方式等同於命令” :<C-
原创 關於宏的兩個bug
個人用define定義宏的時候,有個習慣,進行宏拓展時候,習慣於把外面傳進來的參數加上小括號使用。 例如: #definesum(x, y)((x) + (y)) 如果要定義宏對結構體進行操作,以前也是使用其指針形式進行操作,所以亦無礙。
原创 關於調用函數gettid的錯誤提示
在OpenSuse 64 v12.3上調用gettid函數(已經加上頭文件sys/types.h),但是gcc -Werror給出如下錯誤提示: error: implicit declaration of funct
原创 Windows啓動過程
當你啓動計算機之後,windows的啓動過程就開始執行了。下面是詳細步驟: 1 BIOS執行一些初始系統檢查,並讀取磁盤的第零簇的內容。第零簇內容有一個特殊的稱謂 - 操作系統主引導扇區 MBR(Master Boot Record
原创 在C語言環境下使用google protobuf
本文寫給經常使用C編程且不喜歡C++而又要經常使用google protobuf的人。 經常寫通訊程序的人對數據進行序列化或者反序列化時,可能經常使用google的protobuf(PB),其優點多多,不用我
原创 怎樣安全的使用可變參數宏__VA_ARGS__
今天遇到一個關於可變參數的問題,下面先給出一個示例程序說明我遇到的問題。0 #include <stdio.h>1 2 #define print(fmt, ...) out(fmt, __VA_ARGS__)3 #define
原创 數組是否應該初始化?
程序中的變量初次聲明時,應該初始化。 如:int i = 0; 但是今天一個朋友給瞭如下兩個測試程序,用gcc編譯後,效率還是相差很多的。 下面的函數func中數組沒有初始化,函數被執行1000000次,則
原创 C程序中函數名與宏名稱同名
C語言中,函數名稱和宏名稱可以相同。可以參考下面的示例程序。 ///////////////////////////////////////////test.cpp #include <stdio.h> void print(int va
原创 不借助臨時變量交換兩個變量的值
如果要交換兩個變量的值,一段典型的代碼如下: void swap(type& a, type& b) { type
原创 C語言關鍵字const再理解
以往對C語言關鍵字const的理解是一個const類型的常量指針被賦值爲某一塊內存區域的首地址時,這塊內存區域中的數據不可修改。 如代碼const char* string = “abcdefg",此時常量
原创 select的效率一定比epoll低嗎?
一般以爲epoll的效率比select高,當然有人知道這個前提是網絡環境較差且存在大連接(超過10k)的情況下。 網絡上<<epoll內核實現>>一文中列出了下列因素: select/poll的缺點在於: 1.每次