C 語言最早的原型是 ALGOL 60 1963 年,劍橋大學(xué)將其發(fā)展成為 CPL(Combined Programing Language)。1967 年,劍橋大學(xué)的 Matin Richards 對 CPL 語言進(jìn)行了簡化,產(chǎn)生了 BCPL 語言。
如果問C語言中最重要、威力最大的概念是什么,答案必將是指針!
排序是數(shù)據(jù)處理中經(jīng)常運(yùn)用的一種重要運(yùn)算,排序的功能是將一個數(shù)據(jù)元素(記錄)的任意序列,重新排列成一個按照一個規(guī)則有序的序列。
回調(diào)函數(shù),光聽名字就比普通函數(shù)要高大上一些,那到底什么是回調(diào)函數(shù)呢?
很多編程初學(xué)者至今還在給我寫信請教,問我該學(xué)習(xí)什么程序語言,怎么學(xué)習(xí)。今天我有動力了,想來統(tǒng)一回答一下這個擱置已久的“初級問題”。類似的話題貌似曾經(jīng)寫過,然而現(xiàn)在我想把它重新寫一遍。
在C語言中,按照生命周期來分,變量只有兩類:靜態(tài)變量和動態(tài)變量。
6174數(shù)學(xué)黑洞,即 卡普雷卡爾(Kaprekar)常數(shù)。
對一個字節(jié)數(shù)據(jù),逐個交換其高低位,例如 11010001,經(jīng)過0-7,1-6,2-5,3-4對應(yīng)位的交換,變成 10001011 。對于該問題,我們最先想到的是對原字節(jié)通過移位操作來逐位處理,使用另一個變量來存儲交換后的結(jié)果。這種解決方案處理起來思路清晰,編寫代碼應(yīng)該不難。
我們鼓勵在編程時應(yīng)有清晰的哲學(xué)思維,而不是給予硬性規(guī)則。我并不希望你們能認(rèn)可所有的東西,因為它們只是觀點,觀點會隨著時間的變化而變化。可是,如果不是直到現(xiàn)在把它們寫在紙上,長久以來這些基于許多經(jīng)驗的觀點一直積累在我的頭腦中。因此希望這些觀點能幫助你們,了解如何規(guī)劃一個程序的細(xì)節(jié)。
在嵌入式開發(fā)中,宏定義非常強(qiáng)大也非常便捷,如果正確使用可以讓你的工作事半功倍。然而,在很多的C程序中,你可能會看到不是那么直接的比較特殊一點的宏定義。
為確保消息數(shù)據(jù)的完整性,除了驗證消息CRC之外,建議實現(xiàn)檢查串行端口(UART)成幀錯誤的代碼。如果接收消息中的CRC與接收設(shè)備計算的CRC不匹配,則應(yīng)忽略該消息。下面的C語言代碼片段顯示了如何使用逐位移位和異或運(yùn)算來計算Modbus消息CRC。使用消息幀中的每個字節(jié)計算CRC,除了包含CRC本身的最后兩個字節(jié)。
所謂的數(shù)組越界,簡單地講就是指數(shù)組下標(biāo)變量的取值超過了初始定義時的大小,導(dǎo)致對數(shù)組元素的訪問出現(xiàn)在數(shù)組的范圍之外,這類錯誤也是 C 語言程序中最常見的錯誤之一。
本文介紹了字符串轉(zhuǎn)十六進(jìn)制、十六進(jìn)制轉(zhuǎn)字符串、字符串轉(zhuǎn)十進(jìn)制、十進(jìn)制轉(zhuǎn)字符串等知識點。
謝賓斯基三角形是一個有意思的圖形,(英語:Sierpinski triangle)是一種分形,由波蘭數(shù)學(xué)家謝爾賓斯基在1915年提出,它是一種典型的自相似集。
有些數(shù)據(jù)在存儲時并不需要占用一個完整的字節(jié),只需要占用一個或幾個二進(jìn)制位即可。例如開關(guān)只有通電和斷電兩種狀態(tài),用 0 和 1 表示足以,也就是用一個二進(jìn)位。正是基于這種考慮,C語言又提供了一種叫做位域的數(shù)據(jù)結(jié)構(gòu)。
一位初學(xué)單片機(jī)的小伙伴讓我推薦C語言書籍,因為C語言基礎(chǔ)比較差,想把C語言重新學(xué)一遍,再去學(xué)單片機(jī),我以前剛學(xué)單片機(jī)的時候也有這樣子的想法。其實C語言是可以邊學(xué)單片機(jī)邊學(xué)的,學(xué)單片機(jī)的一些例程中,遇到不懂的C語言知識,再去查相關(guān)的知識點,這樣印象才會深刻些。
前言 在計算機(jī)軟件領(lǐng)域,做出過重大貢獻(xiàn)的神人很多,在這閃耀的明星中,最為閃耀的莫過于「Linus ?Torvalds和Dennis Ritchie」。 那么,這兩位誰的貢獻(xiàn)更大呢?
C 與 C++ 的真正區(qū)別在哪里?
寫好C語言,漂亮的宏定義很重要,使用宏定義可以防止出錯,提高可移植性,可讀性,方便性等等。
這里利用一個實際發(fā)生的例子,針對初級工程師經(jīng)常犯的一個小錯誤,或者經(jīng)常要走的一個彎路,做了針對性的糾正。希望可以幫到大家,文筆不好文章中有敘述不清的地方大家多多指教。