原创 C語言高級編程:彙編分析i++和++i

測試環境: Ubuntu 14.04   1. 代碼 #include <stdio.h> int main() { int a; int b; int c; a = 1; b = a++;

原创 C語言高級編程:結構體中定義數組的“妙用”

1. 說明 1)相同類型結構體變量可以直接賦值 2)在結構體中定義一個數組,可以用賦值語句拷貝整個數組,這也是數組間賦值的一個間接實現方式 3)在結構體中定義一個數組,可以傳值調用的方法把它傳遞給函數做實參 4)在結構體中定義一個數組,可

原创 C語言編譯流程:預處理、編譯、彙編、鏈接

流程: 預處理:展開頭文件/宏替換/去掉註釋/條件編譯                       (test.i main .i) 編譯:檢查語法,生成彙編                                     

原创 Ubuntu16.04安裝docker

官網: https://docs.docker.com/get-started/ https://hub.docker.com/ https://docs.docker.com/install/linux/docker-ce/u

原创 linux進程調度機制

Linux系統是搶佔式多任務操作系統,是否要將一個進程立刻投入運行(也就是搶佔當前進程),完全由該進程的優先級和是否有時間片來決定。但 CFS調度器:搶佔時機取決於新的可執行程序消耗了多少處理器使用比,如果消耗的使用比當前進程小:新程序立

原创 kernel併發控制:自旋鎖、互斥體、中斷屏蔽

  1. 中斷屏蔽(關中斷) 在單 CPU 範圍內避免競態的一種簡單方法是在進入臨界區之前屏蔽系統的中斷。 CPU 一般都具備屏蔽中斷和打開中斷的功能,這項功能可以保證正在執行的內核執行路徑不被中斷處理程序所搶佔,防止某些競態條件的發生。

原创 docker安裝ubuntu鏡像

在docker中安裝Ubuntu。   1. 查找ubuntu鏡像 docker search ubuntu   2. 安裝 docker pull ubuntu   3. 查看鏡像 docker images baoli@ubuntu

原创 C語言高級編程:指針和數組

1. 說明: 1)變量p本身的地址在編譯時確定,它是不變的;變量p存的內容是一個地址,在運行時才能確定,它是變化的 2)數組arr的地址在編譯時確定,它是不變的;數組arr村的內容是一個數據 3)指針變量p能以數組的方式訪問;數組arr能

原创 C語言高級編程系列

筆者主要從事Linux kernel、driver以及TCP/IP方向工作,日常主要使用C語言。工作數年,感嘆C語言的簡潔卻不簡單,至今仍不敢說精通C,希望可以通過此係列文章的總結系統地提升自己。   更新於:20190908 目錄:  

原创 C語言高級編程:數組指針與數組

測試平臺:64位 X86 Ubuntu   1. 代碼: #include <stdio.h> void main(void) { char (*p)[5] = NULL; char (*p1)[5] = NULL;

原创 C語言高級編程:數組和結構體初始化爲0的方法

測試平臺:64位 X86 Ubuntu   1. 代碼: #include <stdio.h> #include <memory.h> struct st_stu { char *name; int age;

原创 C語言高級編程:預處理中的 # 和 ##

1. 說明 #: 字符串化,使用時需加"" ##:組合2個C語言標識符(token)   測試平臺:64位 X86 Ubuntu   2. 代碼 #include <stdio.h> #define TOKEN_PASTER(n)

原创 C語言高級編程:指針變量p指向的地址與p自身的地址

測試平臺:64位 X86 Ubuntu   代碼1: #include <stdio.h> void main(void) { int *p; int i = 10; p = &i; printf(

原创 C語言高級編程:函數指針的用法

測試平臺:64位 X86 Ubuntu   1. 代碼: #include <stdio.h> int print(int a) { printf("a = %d\n", a); } void main(void) {

原创 C語言高級編程:C語言數據類型大小和取值範圍

  1. 64位Ubuntu測試結果 代碼: #include<stdio.h> void main(void) { printf("sizeof(char) = %d\n", sizeof(char)); prin