原创 結構體對齊的問題

  C語言結構體對齊也是老生常談的話題了。基本上是面試題的必考題。內容雖然很基礎,但一不小心就會弄錯。寫出一個struct,然後sizeof,你會不會經常對結果感到奇怪?sizeof的結果往往都比你聲明的變量總長度要大,這是怎麼回事呢?

原创 對比直接編譯進內核和模塊形式

Compiling directly into a kernel vs. modules You have two options for adding functionality to the kernel: building fun

原创 程序執行的詳細過程

uClinux下用戶程序的執行     之所以從用戶程序談起,是因爲我們平常接觸最多的還是應用程序。從應用程序引出到操作系統我覺得比較自然。下面就從一個簡單例子介紹一個程序如何在操作系統中運行。     假如有個c程序:     int 

原创 對比直接編譯進內核和模塊形式

You have two options for adding functionality to the kernel: building funct

原创 關於git server 搭建

http://opengit.org/open/?f=progit_04-git-server http://blog.csdn.net/king_sundi/article/details/7065525

原创 確保Hudson slave與master時間相同

windows作爲Hudson slave端,運行出現如下錯誤,檢查發現slave端時間與master差2分鐘,調整後OK。 FATAL: Remote call on windows_zhou failed java.io.IOEx

原创 KBUILD系統原理分析

kbuild,即kernel build,用於編譯Linux內核文件。kbuild對makefile進行了功能上的擴充,使其在編譯內核文件時更加高效,

原创 函數調用方式的區別[thiscall,__cdecl,__stdcall]

通常在使用VC進行函數定義時會指定該函數調用方式,諸如:   int __stdcall max(int a, int b)   {    return a>b?a:b;   }   int __cdecl min(int a, i

原创 求一個字節(8bit)有幾位爲"1"的O(1)解

真是很極端的做法啊 宋寶華 [email protected] 軟件報 問題:對於一個字節(8bit)的數據,求其中“1”的個數,要求算法的執行效率儘可能地高。 分析:作爲一道著名外企的面試題,看似簡單,實則可以看出一個程序員的基本功底

原创 經典內核Makefile

編譯模塊的make file 必須是Makefile,不能是makefile. //why? ifneq ($(KERNELRELEASE),)//注意ifneq 和()之間有個空格,沒有會報錯 obj-m := mytest.o   

原创 一個複習數據結構比較好的網站

http://student.zjzk.cn/course_ware/data_structure/web/main.htm

原创 不用中間變量交換兩個double類型

#include<stdio.h>  double aa=3.1415926;  double bb=9643380.2345;  void xch

原创 用異或來交換兩個變量效率分析

用異或來交換變量是錯誤的   陳碩 (giantchen_AT_gmail) Blog.csdn.net/Solstice   翻轉一個字符串,例如把 "12345" 變成 "54321",這是一個最簡單的不過的編碼任務,即便是 C 語言

原创 C中#if 0 和#if 1

當註釋掉大塊代碼時,使用"#if 0"比使用"/**/"要好,因爲用"/**/"做大段的註釋要防止被註釋掉的代碼中有嵌套的"/**/",這會導致註釋掉的代碼區域不是你想要的範圍, 當被註釋掉的代碼很大時容易出現這種情況,特別是過一段時間後

原创 C/C++中extern關鍵字詳解

 基本解釋:extern可以置於變量或者函數前,以標示變量或者函數的定義在別的文件中,提示編譯器遇到此變量和函數時在其他模塊中尋找其定義。此外extern也可用來進行鏈接指定。       也就是說extern有兩個作用,第一個,當它