C語言嵌入式系統編程修鍊之六:效能最佳化

使用宏定義  在C語言中,宏是產生內嵌代碼的唯一方法。對於嵌入式系統而言,為了能達到效能要求,宏是一種很好的代替函數的方法。  寫一個"標準"宏MIN ,這個宏輸入兩個參數並返回較小的一個:  錯誤做法:#define MIN(A,B)  ( A <= B ? A : B )  正確做法:#define MIN(A,B) ((A)<= (B) ? (A) : (B) )  對於宏,我們需要知道三點:  (1)宏定義"像"函數;  (2)宏定義不是函數,因而需要括上所有"參數";  (

CRC演算法原理及C語言實現

CRC演算法原理及C語言實現  摘 要  本文從理論上推匯出CRC演算法實現原理,給出三種分別適應不同電腦或微控制器硬體環境的C語言程式。讀者更能根據本演算法原理,用不同的語言編寫出獨特風格更加實用的CRC計算程式。關鍵詞   CRC   演算法   C語言1  引言     迴圈冗餘碼CRC檢驗技術廣泛應用於測控及通訊領域。CRC計算可以靠專用的硬體來實現,但是對於低成本的微控制器系統,在沒有硬體支援下實現CRC檢驗,關鍵的問題就是如何通過軟體來完成CRC計算,也就是CRC演算法的問題。   

C#裡for和foreach的區別

很久很久以前,就聽說,for和foreach是不一樣的(不僅僅是文法),在網上也看到很很多說明的文章。但從自己寫的代碼中來看,很難看出區別在那,因為大多數時候,都是用for或者foreach對一個數組結構的類進行遍曆操作。某天突然想弄清楚這個問題,於是小小的分析了一下,看看下段代碼:public void For(){ string[] array = new string[]{"111","222","333"}; for(int i = 0; i < array.Length; i++

c++ 求主範式

#define FORMULA_HEADER#include <string>#include <stack>#include <vector>#include<iostream>using namespace std;class formulaBase{private: int numVar;//The number of the variables in the formula bool variables[100];//To store

……精通C語言(引導學習一門程式設計語言)

有沒有人精通C語言的啊 我想把C學精通但是我又不知道該怎麼樣循序漸進 不精通C語言學會C語言很容易,它沒幾個語句,沒幾個函數。但用是另一回事。就象 華山劍法難學,令狐師兄學了若干年,但還是誰也打不贏。獨孤求敗只有三 招,令狐師兄卻熬了若干小時就學會,但他先看了各派劍法,融會貫通需要 和高手來回打架。     學C是一個過程,我現在看C和十年前觀念很不一樣。說到底,C只是一個 工具,問題是你要幹什麼,怎麼幹。C玩好了就象獨孤九劍學好了,你可以俯

C++學習第11篇-類的深入

1. 建構函式初始化表之前的類的建構函式的初始化都是使用賦值=來完成;對於常量和引用參數,簡單的賦值=是不足夠的。1)初始化列表賦值有顯式和隱式賦值兩種。之前的類的初始化如:現在,採用一種初始化列表:如所示,初始化列表位於建構函式的參數之後,以':'標誌,每個變數的初始化採用隱式賦值,變數直接以逗號隔開。這樣,對於常量變數,可以在初始化列表中初始化;初始化列表常用於複合類和繼承。2.

c#編譯器的bug

class GGG    {        delegate V Func<V>();        public static void TestDelegate<T>(object t)        {            GetValue(delegate() { return t.GetHashCode(); });        }        static void GetValue<V>(Func<V> loader)     

c#4.0中的dynamic還是真好用啊,可以實現二元指派

using System;namespace Test{    class Program    {        static void Main(string[] args)        {            var objA = new ObjA();            var objB = new ObjB();            var visitorA = new VisitorA();            var visitorB = new VisitorB();

c#3.0,使用傳遞出來的匿名型別

 今天看了csdn上的一段視頻講解c#3.0的,雖然主講人有點口吃但我還是堅持聽完了。裡面有一句話我引起了我的興趣,如果在結構上相同我們就可以對一個匿名型別進行強轉。看來在關鍵時刻我們還是可以直接操作匿名型別的雖然有點麻煩。    我們知道匿名型別實際上就是.net自動產生的一個泛型類,並且只要欄位名相同類型相同就會使用同一個匿名型別。所以我們只要類用這個特性就可以把一個通過參數傳遞的匿名型別進行強轉了。public T CastAnonymous<T>(object

c#讀寫plist及binary plist檔案

因為伺服器要用.net開發,與ipad的程式通訊的檔案格式選用了binary plist所以花了一下午找到了這個好用的庫——iphone-plist-net。用法還是挺簡單的://寫入var arr = new PListArray(); arr.Add(new PListInteger(1)); arr.Add(new PListInteger(2)); arr.Add(new PListInteger(3));

C++學習第14篇-I/O流

1.

C++學習第15篇-函數模板

1.

C++學習第5篇-變數範圍及其他資料類型

1. 段落和局部變數段落,亦稱混合語句,即由{和}括起來的語句,看作單一的語句執行。段落是可以嵌套的:雖然嵌套的層數沒有限制,建議層數在3~4層。變數的範圍,即變數的可視範圍,在段落中聲明的變數稱作局部變數。如所示,nValue和dValue都屬於局部變數,是說明不同段落的變數訪問:段落的外部不能訪問內部的變數,若內部的變數與外部變數同名,內部的覆蓋外部的變數:2.

C++學習第6篇-程式流程式控制制

1. 流程式控制制簡介程式流程,即CPU執行程式的順序;在main()開始和結束。至今為止,我們看到的都是順序執行,通常需中斷調用其他函數,控製程序執行書順序。1)Halt作用:立即終止程式。例如使用<cstdlib>的exit() ;2)Jumps作用:無條件促使CPU跳轉到其他語句。例如:goto、break、continue;函數調用,也是類似該行為。3)條件分支條件分支,即根據運算式的值,選擇改變的執行路徑。通常使用if關鍵字。4)

C++學習第13篇-虛擬函數

1.

C++學習第3篇-資料類型

1. 基本定址和變數聲明1)定址儲存空間之前變數介紹中,已知道變數是儲存空間中一塊地區的名稱。儲存空間的獨立單元稱作地址,儲存空間的最小可定址單元稱作位元組。例如:一個順序儲存地址:因為電腦所有資料是以位來表示,我們使用資料類型來表示資料。C++有8種基礎資料型別 (Elementary Data Type)。2)聲明變數聲明的同時可以賦值:顯式()和隱式()同一類型的變數,可以在同一行聲明:但如下是錯誤的:3)合適的C++聲明風格是:在需要用到的地方和時候。但必須在使用之前聲明。2.

C++問題集(ZZ)

(From http://blog.csdn.net/whoopee/archive/2005/04/03/335572.aspx)  C++問題集(轉自csdn論壇)

C語言袖珍參考(1.介紹)

(原書:C Pocket Reference)C語言袖珍參考C語言袖珍參考手冊是一本很不錯的書:它既可以作為初學者的入門讀物,又可以作為進階者的速查手冊。本書包括兩部分:C語言的文法介紹和標準庫介紹。本書中C語言的文法基於1999年公布的ANSI標準,並包括一些擴充。為了讓讀者能夠很迅速的找到需要的內容,本書提供了索引。 1.      介紹20世紀70年代,Dennis Ritchie曾在Bell實驗室工作過,那時他為DEC

致C++ Builder社群的公開信

(翻譯錯誤或不妥之處敬請指教) BDN News - Open Letter to the C++Builder Community ---------- Borland Developer Network (BDN) News is an email newsletter for members of the Borland Developer Network - http://bdn.borland.com/ Only members who have expressed an

C++學習第7篇-數組和指標

1. 數組Ⅰ數組是彙總資料類型, 通過數組名和索引,訪問多個相同類型的變數。數組訪問通過中括弧和索引表示變數,索引通常從0開始;數組的索引可以是非常量整型值,但數組的長度必須是常量整型值;陣列變數的類型可以為任何類型,包括基礎資料型別 (Elementary Data Type)和結構體;2. 數組Ⅱ1)數組初始化,可以通過括弧對每個變數進行賦初值,亦可以一個個賦值;並且可以部分賦值:2)省略數組長度括弧賦值,可以省略數組的長度,預設賦值的個數為數組的長度;可以通過sizeof求數組的個數:3)

總頁數: 4314 1 .... 1327 1328 1329 1330 1331 .... 4314 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.