Time of Update: 2018-12-03
#include <iostream>using namespace std;typedef struct{double real;double imag;} complex;//複數乘法complex X_complex(complex a, complex b){complex temp;temp.real = a.real * b.real - a.imag * b.imag;temp.imag = b.imag * a.real + a.imag *
Time of Update: 2018-12-03
應用程式調用CreateFile()失敗的情況下,並不會調用CloseHandle(),因為根本沒有得到Handle。CloseHandle()只會被正確的CreateFile()後才會被使用。所以,XXX_Open()函數要有錯誤復原機制,以便應對本函數內部某個步驟出錯的情況。XXX_Open()的復原操作還應該放一份到XXX_Close裡,在正確啟動並執行情況下使用此復原。XXX_Init()的復原操作應該放到XXX_Deinit裡,只此一份復原即可。
Time of Update: 2018-12-03
前言不要把這篇文章當做給編程人員的技術文章,即使你對編程一無所知,按照這篇文章的指引一步步學習,仔細模仿,也可以很容易地學會如何去做。更重要的是,這篇文章將讓你介紹如何讓git成為你的工作日誌,成為你的備份工具,成為你的專案管理軟體。沒錯,git讓這一切變得如此簡單。背景OK,什麼是git? Wikipedia(http://en.wikipedia.org/wiki/Git_(software))告訴我們:“Git (/ɡɪt/) is a distributed revision
Time of Update: 2018-12-03
在調試WinCE程式的時候,有時候會碰到Data/Prefetch Abort的異常,相信從事過WinCE開發的人對這種異常資訊應該都不會陌生,系統會在偵錯主控台輸出如下類似資訊:Exception 'Prefetch Abort' (3): Thread-Id=05870016(pth=9970c000), Proc-Id=057c0016(pprc=9973cdd4)‘TCPClient.exe’,VM-active=057c0016(pprc=9973cdd4)
Time of Update: 2018-12-03
記憶體盤,傻瓜式的就用“魔方”裡面的記憶體盤好啦。魔方:http://mofang.ithome.com/虛擬出一個記憶體盤Z:後,複製下面的內容到記事本,儲存為bat尾碼名的批次檔,然後右鍵,用管理員權限執行即可。順便說一下,下面檔案中的“你的使用者名稱”需修改為你實際的賬戶名------------------------------------------------下面是Bat檔案內容----------------------------------------------------
Time of Update: 2018-12-03
我發現成功的人生都有一個特質,就是不安分。我們父輩中的很多成功者,都是原來放棄了鐵飯碗。這絕對不是什麼懂得放棄的精神,而是因為他們不安分,不滿足於眼前安穩的現狀。雖然他們其中也有犧牲者,但他們的生命都在拼搏,都很有價值。 世上有三種人: 第一種人,他們不能適應社會的準則,被無情地打擊到社會最底層,他們的精神生活幾乎為零,只能得到維持生命存活的物質條件; 第二種人,他們能夠適應社會的準則,但他們必須遵守社會準則,在社會準則面前沒有任何的尊嚴。他們隨波逐流,在適應社會準則時,能夠得到一丁點兒好
Time of Update: 2018-12-03
1.迴圈不要急於展開,在迴圈前加上#pragma MUST_ITERATE(min, max, multiple)效果可能更好,因為編譯器會自動進行軟體流水,多線程並存執行。把#pragma MUST_ITERATE( , , )放在迴圈體之前,告知開發板迴圈次數,改善軟體流水MUST_ITERATE告訴編譯器迴圈的屬性,但是這些屬性必須是真實的,不然程式可能運行出錯。此指令主要用於最佳化C函數迴圈,一般情況下,只要有迴圈都最好帶上此指令#pragma MUST_ITERATE(min,
Time of Update: 2018-12-03
網上搜到了一個庫函數strcmp( )原始碼:int strcmp (const char * src, const char * dst){ int ret = 0 ; while( ! (ret = *(unsigned char *)src - *(unsigned char *)dst) && *dst) ++src, ++dst; if ( ret < 0 )
Time of Update: 2018-12-03
根據定義next[0]=-1,假設next[j]=k, 即P[0...k-1]==P[j-k,j-1] 1)若P[j]==P[k],則next[j+1]=k+1; 2)若P[j]!=P[k],則k=next[k]。#include <stdio.h>#include <string.h>#include <stdlib.h>void get_next(char *pat, int next[]){ int i, j, plen;
Time of Update: 2018-12-03
from: http://blog.csdn.net/ljinddlj/article/details/5935520Loopback介面是一個虛擬網路介面,在不同的領域,其含義也大不一樣。 1.
Time of Update: 2018-12-03
題目:用 if~else 結構語句編程,實現下列函數:如果看不見圖片,看這個:y=-x x<0y=x+5 0≤x< 10y=x+10 10≤x< 20y=x+20 20≤ x① 運行編好的程式,輸入 x 的值,並對程式的輸出結果 y 進行驗證。 ② x 的取值分別滿足: x<0,0≤x<10,10≤x<20,20≤x,查看運行結果。 ③ 嘗試用 switch~case 結構語句編程實現此題 程式:1. 只用if:#include &
Time of Update: 2018-12-03
1、刪除含有指定字串的行替換: ^.*(指定字串).*$ 為空白例如,刪除含有"JOIN"的行, 替換: ^.*JOIN.*$ 為空白 2、刪除//行注釋替換: //.*$ 為空白(需注意,此正則會誤刪在引號中的'//', 如 'http://www' ) 3、刪除/*...*/段注釋替換: //*.*/n*.*/*/ 為空白(需要注意,此正則在Editplus中會有一定的誤判,應該是bug,請在替換時單步觀察)4. 刪除單行的 /* */
Time of Update: 2018-12-03
restrict的作用就是限制一個指標對一塊記憶體的訪問,進一步說就是如果一塊記憶體地區通過一個受限制指標訪問,那麼它就不能通過另一個受限指標訪問。引入restrict的目的是確保同一塊記憶體上沒有其它引用,讓編譯器更好地最佳化指令,產生更有效彙編代碼。把#pragma MUST_ITERATE( , ,
Time of Update: 2018-12-03
工作階段:工作流程一般分為三個階段。 階段一:直接按照需要用C語言實現功能。在實際的DSP應用中,許多演算法都是非常複雜,直接用彙編代碼編寫,雖然最佳化效率很高,可是實現的難度卻很大,所以一般都採用先用C語言來實現,然後編譯運行,利用C64X開發環境的profile clock工具測試程式已耗用時間,若不能滿足要求,則進行第二階段。 階段二:C語言級的最佳化。選擇C64X開發環境提供的最佳化方式以及充分運用其他技巧,最佳化C代碼,若還不能滿足效率要求,則進行第三步。
Time of Update: 2018-12-03
暑假在做實驗的時候,會出現一不小心點了Quartus II 中的一個鍵,然後TestEditor的選項卡就找不到了,開啟多個檔案之後不知道怎麼有選擇地關閉某檔案,如果最小化,就像是在MAXPLUS
Time of Update: 2018-12-03
看到網上很多網友對TI 6000系列DSP最佳化工作感到苦惱,在此我總結下我的最佳化經驗,希望對大家有協助。一、首先考慮從系統結構上最佳化,比如盡量減少待處理資料的無謂搬移,考慮你DSP片記憶體儲量和每次處理資料量對系統結構最佳化,這部分的最佳化應該最早做;二、其次從演算法層面上著手,看採用的演算法有沒有更好更簡單的計算方法,演算法是否有某種對稱性,可否採用更合適的資料結構等等,這方面的最佳化比程式上的最佳化更明顯;三、如果演算法層面暫時無更好的最佳化辦法,看看軟體結構能否最佳化。比如:
Time of Update: 2018-12-03
1. 基本思想* 遞迴比較相鄰的兩個數,若前面的數比後面的數大,則進行交換。這樣,最大的數就被交換到了最後。* 重複執行上面的過程,直到沒有需要交換(用一個flag記錄)為止。 2. 簡單實現void bubble_sort(int array[], int len){int i, j, temp, flag;for(i = 0; i < len-1; i++){flag = 0;for(j = 0; j < (len-1-i); j++){if(array[j] >
Time of Update: 2018-12-03
HEX檔案格式學習筆記 為了編寫一個可以按照自己的要求進行ISP的程式,大概學習了一下HEX檔案格式。把學習筆記寫出來,以為重新鞏固所學習內容。HEX檔案以行為單位。每行以字元 ‘:’ (0x3a)開頭,以斷行符號分行符號0x0d, 0x0a為結束。每行開始和結束之間的所有內容,都是以字元形式表現的。例如資料如果是 0x1A ,那麼轉換到HEX格式的行裡面就是0x31
Time of Update: 2018-12-03
SDL(Simple DirectMedia Layer)是一個開源的跨平台多媒體庫,用於直接控制底層的多媒體硬體,包括音頻、鍵盤、滑鼠、操縱杆、3D硬體(通過OpenGL)以及2D視頻framebuffer。它被MPEG視頻播放軟體、模擬器以及很多流行遊戲所使用。SDL支援Linux、Windows、Windows CE、BeOS、Mac、BSD、Olaris、IRIX、QNX等平台。SDL雖然是用C語言編寫,但能很好地被很多進階語言所使用,如Ada, C#, D, Eiffel,
Time of Update: 2018-12-03
轉自:http://blog.csdn.net/timidsmile/article/details/7546023restrict的作用就是限制一個指標對一塊記憶體的訪問,進一步說就是如果一塊記憶體地區通過一個受限制指標訪問,那麼它就不能通過另一個受限指標訪問。引入restrict的目的是確保同一塊記憶體上沒有其它引用,讓編譯器更好地最佳化指令,產生更有效彙編代碼。把#pragma MUST_ITERATE( , ,