標籤:
今天開始決定,開始學習C語言,網上充斥著各種的入門書籍,各種快速學會C語言編程的資料。可我一個在和周圍碼農接觸了4年多的人來說,我清楚的知道,學習最快的方式就是先從看代碼入手。
但最基本的還是要先熟悉,大學時期,學過一些C也學過一些C++,不過那僅僅是為了掙學分,什麼也沒學到而已。
C語言的優點:
兼備進階語言與低級語言的優點,屬於一種中繼語言。
是一種結構化程式設計語言,非常適合結構化程式設計。
有較豐富的資料類型、運算子以及函數供以選用。
直接和記憶體打交道,使得修改、編輯其他程式與文檔變得輕鬆、簡單。
學C的關口是演算法和資料結構,指標是資料結構中重要的一環,絕大多數的資料結構都是建立在指標之上,如鏈表、隊列、樹、圖等。
今天就先從孫鑫老師的開始看起吧。
第一章就是Windows程式內部運行原理。明白了應用程式要完成某個功能,都是以函數調用的形式實現的。應用程式也是以函數調用的方式來說通知作業系統執行相應的功能的。
作業系統把其所能完成的功能以函數的形式提供給應用程式使用,統稱為Windows API(Application Programming Interface)。
如 CreateWindow 是一個API函數,應用程式調用此函數,作業系統按照該函數提供的參數資訊產生一個相應的視窗。
訊息和訊息佇列,作業系統是通過訊息機制來實現將感知的事件傳遞給應用程式。每一個事件都被封裝成一個稱為訊息的結構體。
typedef struct tagMSG{
HWND hwnd;
UNIT message;
WPARAM wParam;
LPARAM iParam;
DWORD time;
POINT pt;
}MSG;
控制代碼(HANDLE),資源的標識。作業系統要管理和操作這些資源都是通過控制代碼來找到對應的資源,按資源的類型又可將控制代碼細分成表徵圖控制代碼(HICON)、游標控制代碼(HCURSOR)、視窗控制代碼(HWND)、應用程式執行個體控制代碼(HINSTANCE)。
Windows程式的入口函數
int WINAPI WinMain(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
instance
LPSTR lpCmdLine,
int nCmdShow
);
建立一個完整的視窗需要經過:設計一個視窗類別,註冊視窗類別,建立視窗,顯示及更新視窗。
設計視窗類別:
typedef struct_WNDCLASS{
UNIT style;//視窗類別的類型,每一個類變數的每一位(bit)都對應某一種特性。
WNDPROC lpfnWndProc; //視窗過程函數,也稱回呼函數。回呼函數的代碼必須由應用程式自己完成。對於一條訊息作業系統到底調用應用程式的lpfnWndProc成員指定的函數。
int cbClsExtra;
int cbWndExtra;
HANDLE hInstance;
HICON hIcon;
HCURSOR hCursor;
HBRUSH hbrBackground;
LPCTSTR lpszMenuName;
LPCTSTR lpszClassName;
}WNDCLASS;
變數:變數是儲存資料的值的空間。由於數值的類型有多種,有整數,小數等等,那麼對應的變數就有整型變數、浮點型變數、字元型變數等。
標識符的命名規則:
標識符只能有字母、數字和底線三類字元組成;
第一個字元必須是字母;
大寫字母和小寫字母被認為是兩個不同的字元。
標識符可以任意長,但只有前32位有效。
標識符不能是C的關鍵字。
學C語言--第一天