原创 [C/C++]定時器相關

【計算機定時器相關】timer定時器的底層實現邏輯:時間輪。 在linux內部,如何得到時間節奏的呢?答案是高精度的硬件,如果有一個硬件能夠保證每次過一個絕對固定的時間,一模一樣的時間,觸發一次中斷(tick),那麼其實計算機就能

原创 [LINUX]文件的讀取過程

文件打開和讀取的過程:在調用open之後,在內核全局區域生成一條文件表的項,並填寫了相關的運行時參數,然後,在進程的u區中在文件描述符表中也新生成了一個項,他的索引作爲fd的值,返回給用戶態,一般來看所有的系統調用如果失敗的話,返

原创 [LINUX]進程執行路徑

①關於進程的執行路徑:進程的執行路徑本質上就是一個目錄文件,因此在一個運行期間,其實這個目錄文件對應的索引節點是肯定有引用計數的,目的就是在進程退出之前,內核不要真的去釋放這個目錄,刪除這個目錄。另一個角度可以理解爲,進程在打開

原创 [C]定義臨時結構體變量

通常用於測試等quick code場景 struct { char buff[6];} a { "hello" };

原创 [C]定義臨時結構體變量

通常用於測試等quick code場景 struct { char buff[6];} a { "hello" };

原创 [C/C++]覆蓋與隱藏

①類的名字查詢邏輯:前後有繼承關係的類,其作用域實際上是嵌套的,即雖然我們寫成兩個類,父類和子類,看上去好像是分離的,實際上,他們就是另一種我們常見的類的關係,就是嵌套類。當我們申請了一個子類的對象,調用其中的一個繼承而來的公有

原创 [C]字符串連接特性

字符串可以直接連接 printf("aaa\n" "bbb\n"); 等價於 printf("aaa\nbbb\n");

原创 [LINUX]高速緩衝區的用戶態實現

高速緩衝區的用戶態實現:高速緩衝區理論上也是比較好理解的一個數據結構,他的好處是減少對於慢速IO的高頻率訪問,從單機的內核態來說,慢速和快速主要是內存和磁盤之間的IO瓶頸,對於多機的分佈式文件系統來說,主要是磁盤和網絡傳輸之間的I

原创 [C]__always_inline宏

__always_inline 作用類似於inline,告訴編譯器,進行強制內聯的修飾符。

原创 [Algo]最短路徑搜索

- 從有向帶權的圖中獲取某個源點到剩餘的其他節點的最短路徑的算法,權表示的是路徑長度。 - 維護一個長度數組v[n],n就是節點個數,每個數組都存儲源點到對應的節點的長度,一開始初始化的時候,由於都不知道,所以都初始化成無窮大,然後開始算

原创 [C/C++]decltype和auto區別

auto是根據在定義的時候的”初始值“,來推斷類型。而decltype是根據操作數來推斷類型的。即delctype後面括號中的表達式,是不需要計算值的,有表達式也不會實際去賦值的。兩者區別顯而易見,就是可以有初始值,那麼用aut

原创 [C/C++]構造函數初始化

構造函數: ①編碼過程中倡導:函數功能儘量單一,儘量多的扇入,合理的扇出。構造函數也是一樣的,構造函數的最重要的功能,就是初始化,所有和初始化有關的,都可以放在構造函數中,比如類內部成員的初始化等。 ②初始化方式:其實有三種方式初始化:

原创 [C/C++]goto語句的使用場景

1.用於需要跳出多層循環 for () { for () { goto err; } } err: 2.用於異常處理,通常可以統一處理錯誤信息。 if () { goto er

原创 [C/C++]Virtual基類

和Inline有相同點,Inline就是編譯的時候將函數直接展開來,不使用鏈接方式。Virtual也是影響編譯和鏈接的一種修飾符。 Virtual基類:(虛擬繼承)用Virtual修飾類,派生類到基類存在多條路線時(多個繼承脈絡

原创 [C/C++]神經元結構編碼

本次主要對神經元的結構做進一步的細化: ①一個神經元,首先分爲樹突部分:用於接收上層傳遞過來的信息(包括信號量的值:即液體本身和參數,即液體中的粒子等)。“樹突”部分將內容進行存儲同時判斷是否達到閾值(這裏的閾值可以類比階梯式的