為什么不需要給回調(diào)函數(shù)傳遞參數(shù)
回調(diào)函數(shù)是C語(yǔ)言里面一個(gè)重要機(jī)制。
內(nèi)存泄漏檢測(cè)工具Sanitizer介紹
內(nèi)存泄漏,我們經(jīng)常會(huì)遇到,如何檢測(cè)內(nèi)存泄漏,除了我們之前講過(guò)的 valgrind,還可以使用 gcc....
STM32和ESP32應(yīng)該學(xué)哪個(gè)
STM32 和 ESP32,哪個(gè)更適合我們學(xué)習(xí)? 這兩個(gè)雖然都是單片機(jī),但是各自的應(yīng)用領(lǐng)域不一樣,不....
深入探索GCC的attribute屬性
如果經(jīng)??碙inux源碼,一定會(huì)見(jiàn)過(guò) attribute 屬性,他在 Linux 里面出現(xiàn)的很多。 ....
15行代碼引發(fā)1800多行編譯錯(cuò)誤:問(wèn)題排查挑戰(zhàn)
寫(xiě)了 15 行代碼,編譯報(bào)錯(cuò)竟然高達(dá) 1800 多行,這種奔潰的瞬間應(yīng)該有很多同學(xué)遇到過(guò)。 代碼分為....
分析C語(yǔ)言代碼結(jié)構(gòu)的設(shè)計(jì)問(wèn)題
來(lái)分析一個(gè)C語(yǔ)言代碼結(jié)構(gòu)的設(shè)計(jì)問(wèn)題。 這段代碼,使用了兩次malloc,分別給 p1 和 p2 申請(qǐng)....
在Linux下安裝軟件有哪些方法
在Linux下安裝軟件,可以有哪些方法? 首先是最簡(jiǎn)單的,使用軟件包管理工具。 如果是ubuntu或....
利用棧結(jié)構(gòu)實(shí)現(xiàn)四則運(yùn)算的巧妙方法
上個(gè)視頻寫(xiě)了個(gè)簡(jiǎn)易計(jì)算器,算個(gè)簡(jiǎn)單的加減乘除還行,但是如果來(lái)個(gè)混合運(yùn)算,或者加個(gè)括號(hào),這幾行代碼就差....
指針被釋放后就變成了空指針嗎
指針被釋放后,是不是就變成了空指針?有好多同學(xué)提出了這樣的問(wèn)題。 借用《C專(zhuān)家編程》上面的一段代碼,....
什么樣的代碼會(huì)被編譯器優(yōu)化
現(xiàn)在的編譯器有多智能,可能你辛辛苦苦寫(xiě)的代碼,在編譯器看來(lái)就是幾句廢話,直接被刪除掉。
C語(yǔ)言如何處理函數(shù)的返回值
當(dāng)你在函數(shù)的最后寫(xiě)上 return 0 的時(shí)候,它是如何返回給調(diào)用函數(shù)的? 比如 test 函數(shù),為....
const定義的是不是常量
C語(yǔ)言是如何定義常量的?const定義的算不算是常量? 常見(jiàn)的有這么幾種方式。 首先就是宏定義,使用....
不停的malloc程序會(huì)異常嗎
把 malloc 放在死循環(huán)里面,會(huì)是什么樣的現(xiàn)象? 比如這樣的代碼,每次使用 malloc 申請(qǐng) ....
如何把兩個(gè)數(shù)據(jù)返回給調(diào)用函數(shù)
函數(shù)的處理結(jié)果包含兩個(gè)數(shù)據(jù),如何把兩個(gè)數(shù)據(jù)返回給調(diào)用函數(shù)? 第一種,把兩個(gè)數(shù)據(jù)封裝成一個(gè)結(jié)構(gòu)體,函數(shù)....
C語(yǔ)言筆試題
來(lái)看一個(gè)C語(yǔ)言筆試題,應(yīng)該很少有人能給出正確答案。 #include int f(){ printf....
數(shù)組的下標(biāo)為什么可以是負(fù)數(shù)
最近有同學(xué)發(fā)來(lái)這樣一段代碼,并提出一個(gè)問(wèn)題,數(shù)組的下標(biāo)為什么可以是負(fù)數(shù)? ? ? #include ....
stdio.h實(shí)現(xiàn)了printf函數(shù)?
我們平時(shí)包含的 stdio.h 頭文件,里面是不是實(shí)現(xiàn)了 printf 函數(shù)? 為什么會(huì)有這個(gè)疑問(wèn)?....
養(yǎng)成良好的編程習(xí)慣|堆內(nèi)存初值不一定是0
? 什么是良好的編程習(xí)慣?可以看下這段代碼,有沒(méi)有什么問(wèn)題? #include #include i....
51單片機(jī)中為什么很少出現(xiàn)printf的身影
51單片機(jī)中為什么很少出現(xiàn) printf 的身影?是用不了嗎? 不是的,51單片機(jī)可以用 print....

同樣是函數(shù),在C和C++中有什么區(qū)別
同樣是函數(shù),在 C 和 C++ 中有什么區(qū)別? 第一個(gè)返回值。 C語(yǔ)言的函數(shù)可以不寫(xiě)返回值類(lèi)型,編譯....
四種方法教你判斷設(shè)備的字節(jié)序
如何判斷設(shè)備的字節(jié)序,提供 4 種方法給大家參考。 首先就是從概念入手。 所謂小端字節(jié)序,高字節(jié)存放....
C語(yǔ)言中申請(qǐng)的堆內(nèi)存能不能自動(dòng)釋放
C語(yǔ)言中申請(qǐng)的堆內(nèi)存能不能自動(dòng)釋放?每次都要手動(dòng) free 太麻煩,也容易忘記。 學(xué)過(guò) C++ 的同....
C語(yǔ)言中的頭文件能不能重復(fù)包含
C語(yǔ)言中的頭文件能不能重復(fù)包含? 比如代碼寫(xiě)成這樣,stdio.h 連續(xù)包含了兩次。 #includ....
數(shù)組名之間可以直接賦值嗎
數(shù)組之間的賦值能不能直接使用等于號(hào)?比如這樣的代碼。 int main(){ int a[5] = ....
結(jié)構(gòu)體成員的順序會(huì)影響結(jié)構(gòu)體的大小嗎
相同的結(jié)構(gòu)體成員,如果把順序調(diào)整一下,會(huì)不會(huì)影響結(jié)構(gòu)體的大??? 答案是會(huì)的,這主要跟字節(jié)對(duì)齊有關(guān)。 ....
指針數(shù)組和二維數(shù)組有沒(méi)有區(qū)別
指針數(shù)組和二維數(shù)組有沒(méi)有區(qū)別?比如這樣的兩個(gè)代碼。 int main(){ char *s1[] =....
C語(yǔ)言關(guān)鍵字分別發(fā)生在哪個(gè)階段
以下C語(yǔ)言關(guān)鍵字,分別發(fā)生在哪個(gè)階段? 第一個(gè),define。 首先得糾正一下,define 并不是....
如何判斷Linux系統(tǒng)的位數(shù)
給你一個(gè) Linux 系統(tǒng),如何判斷它的位數(shù)? 我經(jīng)常用的,有這么幾種方式。 第一個(gè),使用命令: u....