原创 linux下的Makefile詳解(5)

使用條件判斷 —————— 使用條件判斷,可以讓make根據運行時的不同情況選擇不同的執行分支。條件表達式可以是比較變量的值,或是比較變量和常量的值。 一、示例 下面的例子,判斷$(CC)變量是否“gcc”,如果是的話,則使用GNU函數編

原创 比較好懂的KMP算法解釋(附next數組求解方法)

字符串匹配是計算機的基本任務之一。   舉例來說,有一個字符串"BBC ABCDAB ABCDABCDABDE",我想知道,裏面是否包含另一個字符串"ABCDABD"?   許多算法可以完成這個任務,Knuth-Morris-Pratt

原创 linux下的Makefile詳解(6)

使用函數 ———— 在Makefile中可以使用函數來處理變量,從而讓我們的命令或是規則更爲的靈活和具有智能。make所支持的函數也不算很多,不過已經足夠我們的操作了。函數調用後,函數的返回值可以當做變量來使用。 一、函數的調用語法 函數

原创 linux下的Makefile詳解(4)

使用變量 ———— 在Makefile中的定義的變量,就像是C/C++語言中的宏一樣,他代表了一個文本字串,在Makefile中執行的時候其會自動原模原樣地展開在所使用的地方。其與C/C++所不同的是,你可以在Makefile中改變其值。

原创 linux下的Makefile詳解(8)

隱含規則 ———— 在我們使用Makefile時,有一些我們會經常使用,而且使用頻率非常高的東西,比如,我們編譯C/C++的源程序爲中間目標文件(Unix下是[.o]文件,Windows下是[.obj]文件)。本章講述的就是一些在Make

原创 linux下的Makefile詳解(9)完!

使用make更新函數庫文件 ——————————— 函數庫文件也就是對Object文件(程序編譯的中間文件)的打包文件。在Unix下,一般是由命令"ar"來完成打包工作。 一、函數庫文件的成員 一個函數庫文件由多個文件組成。你可以以如下格

原创 linux下man時括號裏的數字意義

manfclose時,會顯示fclose(3),這個3的意義是什麼呢,它不是指有幾個參數,而是表示fclose所在章節,3就是庫調用。具體如下: 1

原创 shell的條件判斷中從-a 到-z的意思

[ -a FILE ] 如果 FILE 存在則爲真。 [ -b FILE ] 如果 FILE 存在且是一個塊特殊文件則爲真。 [ -c FILE ] 如果 FILE 存在且是一個字特殊文件則爲真。 [ -d FILE ] 如果 F

原创 gzip頭部格式

注意兩個加號表示一個字節(8位)gzip頭的格式: +---+---+---+---+---+---+---+---+---+---+ |ID1|ID2|CM |FLG| MTIME |XFL|OS | (more-

原创 關於printf的一點小注意

printf的返回值是輸出字符的個數 函數printf是從左往右讀取的,然後將先讀取到的放入棧底,最後讀取到的放入棧頂,處理的時候是從棧頂開始處理的,所以我們看到的結果是從右往左的。

原创 C語言中extern的用法

在C語言中,修飾符extern用在變量或者函數的聲明前,用來說明“此變量/函數是在別處定義的,要在此處引用”。 1. extern修飾變量的聲明。舉例來說,如果文件a.c需要引用b.c中變量intv,就可以在a.c中聲明extern in

原创 linux下的Makefile詳解(7)

make 的運行 —————— 一般來說,最簡單的就是直接在命令行下輸入make命令,make命令會找當前目錄的makefile來執行,一切都是自動的。但也有時你也許只想讓make重編譯某些文件,而不是整個工程,而又有的時候你有幾套編譯規

原创 正向代理和反向代理

正向代理的概念 正向代理,也就是傳說中的代理,他的工作原理就像一個跳板, 簡單的說, 我是一個用戶,我訪問不了某網站,但是我能訪問一個代理服務器 這個代理服務器呢,他能訪問那個我不能訪問的網站 於是我先連上代理服務器,告訴他我需要那個無法

原创 go get 出錯

使用go get某個庫的時候出現了以下錯誤: package bytes: unrecognized import path "bytes" (import path does not begin with hostname) p

原创 python下numpy的基礎使用

#!/usr/bin/python # coding: utf-8 import numpy as np a = np.array([1,2,3]) b = np.array([[1,2,3],[4,5,6],[7,8,9]])