@C語言

Stories List
@MikeZhang

使用RNNoise進行音頻降噪

操作系統:Debian 12.5_x64 Windows10_x64 rnnoise版本:0.2 gcc版本:12.2.0 python版本: 3.9.13 RNNoise是一個將傳統數字信號處理與深度學習相結合的開源實時音頻降噪庫,可在消耗極少計算資源的情況下實現毫秒級降噪,今天整理下這方面的筆記,希望對你有幫助。 該庫涉及算法的描述詳見論文(一種混合 DSP/深度學習方法的實時全頻帶語音增強

MikeZhang Avatar

@MikeZhang

Nickname Mike_Zhang

@MikeZhang

使用RNNoise進行音頻降噪

操作系統:Debian 12.5_x64 Windows10_x64 rnnoise版本:0.2 gcc版本:12.2.0 python版本: 3.9.13 RNNoise是一個將傳統數字信號處理與深度學習相結合的開源實時音頻降噪庫,可在消耗極少計算資源的情況下實現毫秒級降噪,今天整理下這方面的筆記,希望對你有幫助。 該庫涉及算法的描述詳見論文(一種混合 DSP/深度學習方法的實時全頻帶語音增強

MikeZhang Avatar

@MikeZhang

Nickname Mike_Zhang

@MikeZhang

使用RNNoise進行音頻降噪

操作系統:Debian 12.5_x64 Windows10_x64 rnnoise版本:0.2 gcc版本:12.2.0 python版本: 3.9.13 RNNoise是一個將傳統數字信號處理與深度學習相結合的開源實時音頻降噪庫,可在消耗極少計算資源的情況下實現毫秒級降噪,今天整理下這方面的筆記,希望對你有幫助。 該庫涉及算法的描述詳見論文(一種混合 DSP/深度學習方法的實時全頻帶語音增強

MikeZhang Avatar

@MikeZhang

Nickname Mike_Zhang

@YueZone

棧的兩種存儲結構(順序存儲和鏈式存儲)

棧的操作實現 棧的概念 棧是一種後進先出(LIFO)的線性數據結構,只允許在一端(棧頂)進行插入和刪除操作。新元素總是添加到棧頂,而刪除也總是從棧頂移除最上面的元素。棧常用於函數調用、表達式求值、括號匹配等場景。 代碼實現---順序存儲(Array-based Stack) #include stdio.h // 標準輸入輸出庫,用於 printf 等函數 #include stdbool.h//

YueZone Avatar

@YueZone

Nickname Yue+

@YueZone

C語言實現循環隊列——始化、入隊、出隊與完整測試

隊列的基本操作實現 1.隊列的概念 🌟 隊列(Queue)—— 先進先出的數據結構 隊列是一種線性數據結構,遵循 “先進先出”(FIFO, First In First Out) 的原則。如現實中的排隊:先來的人先被服務,後來的人排在隊尾等待。 🔧 基本操作: 入隊(Enqueue):在隊尾添加一個新元素。 出隊(Dequeue):從隊頭移除一個元素。 查看隊頭(Front):獲取隊頭

YueZone Avatar

@YueZone

Nickname Yue+

@YueZone

實現二叉排序樹的前中後序遍歷

二叉排序樹定義 二叉排序樹(Binary Sort Tree),也稱為二叉查找樹(Binary Search Tree, BST)或有序二叉樹,是一種特殊的二叉樹數據結構。以下是二叉排序樹的一些核心概念: 一個二叉排序樹或者是一棵空樹,或者是具有以下性質的二叉樹: 右子樹上所有結點的值均大於它的根結點的值 左子樹上所有結點的值均小於它的根結點的值 左右子樹也分別為二叉排序樹 不存在鍵值相

YueZone Avatar

@YueZone

Nickname Yue+

@YueZone

學習筆記:五種基礎排序C語言實現

五種基礎排序-升序實現 插入排序 構建有序序列,對於未排序數據,在已排序序列中從後向前掃描,找到相應位置並插入。 void InsertSort(int buf[], int bufsize) { for (int i = 1; i bufsize; i++){ int temp = buf[i]; int j = i - 1; // 只

YueZone Avatar

@YueZone

Nickname Yue+

@MMXXLL

24位色深bmp圖片顯示lcd屏幕上

設計一個將24位色深的bmp圖片顯示到lcd屏幕上,可移植,該程序自己寫過之後,又經過了ai的完善和修復後,自己又再次添加一些語句註釋 /**************************************************************************** * * file name: 2025-07-30_filecopy.c * author :

MMXXLL Avatar

@MMXXLL

Nickname 一二三一二一

@EricsT

井字棋

該遊戲為c語言寫的練手小遊戲 大致分為兩部分: 菜單顯示 遊戲部分 主程序 首先加載菜單 用户選擇人機或者雙人,進入遊戲函數 選擇退出時,退出程序 選擇不合法選項時,再次加載菜單供用户選擇 菜單代碼 /** * @brief 菜單函數 * * @return 無返回值 * * @code * Menu(); * @endcode */ void Menu() { pri

EricsT Avatar

@EricsT

Nickname EricsT

@Invinc-Z

有符號整數的三種編碼方式:原碼、反碼和補碼

在計算機中,原碼、反碼、補碼 是用於表示有符號整數的三種編碼方式,主要用於解決二進制數的 正負表示 和 加減運算 問題。它們的核心區別在於 符號位的處理 和 負數的表示方法。 原碼(Sign-Magnitude) 定義 最高位(最左邊的一位)表示符號: 0 表示正數(如 +5) 1 表示負數(如 -5) 其餘位表示數值的絕對值。 示例(8位二進制)

Invinc-Z Avatar

@Invinc-Z

Nickname Invinc-Z

@Invinc-Z

C語言之文件流常用標準庫函數

本文總結了在C語言中與文件流相關的標準庫函數。 文件流常用標準庫函數 使用下列文件流相關函數需要包含頭文件stdio.h。 函數 作用 注意事項 打開或關閉文件流 fopen 打開文件,返回指向FILE的指針 需要指定模式(如“r”, “w”, “a”等),並處理可能的文件打開錯誤

Invinc-Z Avatar

@Invinc-Z

Nickname Invinc-Z

@Invinc-Z

C語言之可變參數列表

在 C 語言中,可變參數列表(Variable Argument List)通過 stdarg.h 頭文件提供的宏和函數來實現。它允許函數接受可變數量的參數,類似於 printf 和 scanf 這樣的函數。本文介紹與可變參數列表相關的函數和用法。 核心宏和函數 stdarg.h 提供了以下宏和函數來處理可變參數列表: 宏/函數 作用 va_li

Invinc-Z Avatar

@Invinc-Z

Nickname Invinc-Z

@nuanshu

lwip-autoip

lwip-2.1.3/src/core/ipv4/autoip.c AutoIP 通常指的是在動態網絡環境中,系統自動為其網絡接口分配、管理和使用一個IP地址的技術,而無需依賴中心化的服務器(如DHCP服務器)或手動靜態配置 需要使用autoip,需要在opt.h頭文件當中使能LWIP_AUTOIP這個宏,通常也會使能LWIP_DHCP_AUTOIP_COOP這個宏 /* ------

nuanshu Avatar

@nuanshu

Nickname nuanshu

@Invinc-Z

C語言之如何定義一個數據類型

本文介紹瞭如何設計和定義一個新的數據類型,具體包括建立抽象、建立接口和實現接口三個部分。總結這三步法:從思考“做什麼”(抽象)到規定“怎麼做才對”(接口),最後才是“怎麼做到”(實現),這是編寫健壯、清晰、可維護代碼的基石。 引言 設計一種數據類型包括設計如何儲存該數據類型(屬性)和設計一系列管理該數據的函數(操作)。 計算機科學領域已開發了一種定義新類型的好方法,用3個步驟完成從抽象到具體的過

Invinc-Z Avatar

@Invinc-Z

Nickname Invinc-Z

@Zeeh-Lin

一生一芯中有趣的C語言宏:LIST_FOREACH 鏈表遍歷宏

記錄了學習 “一生一芯” 時(更確切地説是學習 “Learn C The Hard Way” 時)遇到的 LIST_FOREACH 鏈表遍歷宏。該宏的精髓在於使用 V 和 _node 雙指針機制,以確保即使在複雜場景下(如用户誤改指針),循環的健壯性和遍歷的正確性也不會被破壞。 LIST_FOREACH的定義 #define LIST_FOREACH(L, S, M, V) ListNod

Zeeh-Lin Avatar

@Zeeh-Lin

Nickname Zeeh-Lin

@lradian

MQTT協議

//請求連接 void mqtt_connect(char *clientid,char *username,char *passwd) { uint32_t clientid_len = strlen(clientid); uint32_t username_len = strlen(username); uint32_t passwd_len = strlen(passwd); //用

lradian Avatar

@lradian

Nickname LRadian

@Langx

C_結構體學習_1

這裏記錄一下怎麼為結構體成員變量實現內存連續且為動態 #include iostream #include conio.h #include stdlib.h #include string.h #include stdio.h using namespace std; // 今天描述結構體中的指針和數組 typedef struct _Player { int level; ch

Langx Avatar

@Langx

Nickname 1angx