Time of Update: 2018-12-05
在gcc中,可以使用__asm__表示後面的代碼為內嵌彙編代碼,__volatile__表示編譯器不要最佳化代碼,後面的指令保留原樣,內嵌彙編文法如下:__asm__(彙編語句模板:輸出部分: 輸入部分:
Time of Update: 2018-12-05
有N個大小不等的自然數(1--N),請將它們由小到大排序。 要求程式演算法:時間複雜度為O(n),空間複雜度為O(1)。#include <stdio.h>#include <stdlib.h>void sort(int arr[], int n){int t;for (int i = 0; i < n; i++){while (arr[i] != i+1){printf("===== arr[i]=%d, i=%d/n", arr[i], i);t =
Time of Update: 2018-12-05
http://www.cppblog.com/aurain/archive/2010/07/06/119463.html雜湊表是一種key-value訪問的資料結構,通過指定的key值可以快速的訪問到與它關聯的value值。hash表的一種典型用法就是字典,通過單詞的首字母可以快速的找到單詞。 typedef char gchar;typedef short gshort;typedef long glong;typedef int gint;typedef gint
Time of Update: 2018-12-05
lib_arm/board.cstart_armboot 是U-Boot執行的第一個C語言函數,完成系統初始化工作,進入主迴圈,處理使用者輸入的命令void start_armboot(void){DECLARE_GLOBAL_DATA_PTR;ulong size;init_fnc_t **init_fnc_ptr;char *s;/* Pointer is writable since we allocated a register for it */gd =
Time of Update: 2018-12-05
不管是阻塞還是非阻塞模式,send(...)返回的資料長度,只是表示拷貝到協議棧緩衝區中的資料長度,並不是實際發送的資料量或對方接收的資料量。對於recv(...),只是從緩衝區中擷取接收到的資料。發送方先將資料拷貝到協議棧緩衝區,tcp會保證緩衝區中的資料發送到接收方的緩衝區。至於資料如何可靠的到達,底層協議已經給我們做了很多工作,上層的應用程式不用考慮。阻塞與非阻塞,相對於底層協議來說沒有太大的區別(我現在是這麼認為的),如果是阻塞模式,send的時候會將要發送的資料拷貝到緩衝區中,如果緩衝
Time of Update: 2018-12-05
第一本《windows程式設計》目前還只是看了上半本,感覺看了對win32
Time of Update: 2018-12-05
Jery最早的意圖是支援一個iostream class object的純量測試,像這樣:if ( cin )...為了讓cin能夠求得一個真假值,Jerry首先為它定義一個conversion運算子,即operator int()。在良好行為如上者,確實
Time of Update: 2018-12-05
TCP協議規定了在不同主機間進行可靠資料流傳輸的通用方法,如 串連建立與釋放、報文編號、收到資料報後的確認、流量控制、發送逾時等等。靠死記硬背來學習這些東西,沒過幾天就又忘記了。我發現根據TCP報文格式來瞭解掌握這些知識,效果還是不錯的。看到下面這張圖(此圖來源於網路),就能回憶起關於TCP協議的大部分東西: (該圖來源於網路)Source Port,Destination
Time of Update: 2018-12-05
第一章內容比較多。學習了以下內容:1、imageready裁剪工具2、漸層3、魔法棒,路徑4、遮罩、Overlay混合模式,這個比較難。自己的圖形如下(A):imageready裁剪圖形(B)如下:書上最後輸出的html的psd圖形(C)如下:(C)圖與(A)圖相比,不足如下:1、A圖中左上方的圖形沒有處理好2、幾個按鈕上的字也不相同(沒有去找字型)這本書,05年購入,到現在為止7年了,自己才去真正實現了一把。花了我2天時間。其中清明3天還有半天花在這個上面。後面的dreamweaver操作,自
Time of Update: 2018-12-05
IE6.0下調試WEB真的很痛苦.特別是在web2.0時代。但是遺憾的是,IE6對DHTML的支援極差。有時候出現的莫名其妙。昨天調試的時候,差點被這個問題給氣死:對動態產生的html元素,進行關聯操作。比方說,我先用指令碼產生一個select,
Time of Update: 2018-12-05
PRODUCT_COPY_FILES的作用是拷貝多個apk,我是用來添加一些第三方apk放入系統。4.0的PRODUCT_COPY_FILES不能直接使用,否則會報如下的錯誤:錯誤資訊:The following variables have been changed: PRODUCT_COPY_FILES. Stop.修改方法:改兩處1)build/core/Makefile:
Time of Update: 2018-12-05
花了快3周才把第二章銀色魅力II完成,其中還是有不少缺陷1、case2_gradient.psd完成,但是和書本上的漸層完全不相同書本上的2、Case2_apply.psd步驟完全和書上一樣,就是效果不一樣,nnd,關鍵是效果差太多了3、最後用書上的psd,進行imageready切割,和dreamweaver排版,結果正確總結:刻線:1條黑色的象素和1條相鄰的白色象素自動色階(Auto Level) :?????????通道 MaskShape 路徑Apply Image 沒成功
Time of Update: 2018-12-05
NppAStyle是一個NotePad++的外掛程式,用于格式化Notepad中編輯的c、c++、C#、java代碼。NppAStyle在內部使用Astyle來格式化代碼,是一個很簡單,但很實用的Notepad++外掛程式。可以在這裡下載該外掛程式。 下面是外掛程式的一些:(1)(二)(三)(四) 註:notepad++是一個功能強大的文本編輯工具,免費、開源、速度快是它的優點,它是UltraEditor, emEditor,
Time of Update: 2018-12-05
開發板上電後,執行U-Boot的第一條指令,然後順序執行U-Boot啟動函數。函數調用。 看一下board/smsk2410/u-boot.lds這個連結指令碼,可以知道目標程式的各部分連結順序。第一個要連結的是cpu/arm920t/start.o,那麼U-boot的入口指令一定位於這個程式中。下面分析一下程式跳轉和函數調用關係以及函數實現。 1. cpu/arm920t/start.S這個組譯工具是U-Boot的入口程式,開頭就是複位向量的代碼。 U-Boot啟動代碼流程圖 _start:
Time of Update: 2018-12-05
宏有一個很大的作用,就是自動為我們產生代碼。如果說模板可以為我們產生各種類型的代碼(類型替換),那麼宏其實可以為我們在符號上產生新的代碼(即符號替換、增加)。 1.宏可以像函數一樣被定義。 2.如果宏需要參數,你可以不傳,編譯器會給你警告(宏參數不夠),但是這會導致錯誤,如C++書籍中所描述的,編譯器(前置處理器)對宏的語法檢查不夠,所以更多的檢查性工作得你自己來做。 3.#符號把一個符號直接轉換為字串,例如#define STRING(x) #xconst char *str =
Time of Update: 2018-12-05
又是花了三周時間來結束這一章,主要學習Lighting Effects濾鏡的使用測試檔案如下:自己製作的效果如下:大部分都比較順利。問題如下:1、其中兩條刻線還是做的不太成功,仍舊是apply image的問題,還是未解決。2、右下角的圖片與左下周的還是差別比較大。3、還有使用Aairbrush Tool也沒使用上。新版本存在此工具,但不會使用。(?)最終HTML效果:
Time of Update: 2018-12-05
VC 常用外掛程式 1.Visual Assist(強烈推薦)http://www.wholetomato.com/ VA從5.0一直到現在的VAX,功能越來越強大,除了以前版本中的自動識別各種關鍵字,系統函數,成員變數,自動給出輸入提示,自動校正大小寫錯誤,自動標示錯誤等等以外,最新的版本中還在WorkSpace視窗中加入一個VA
Time of Update: 2018-12-05
Bootloader的啟動流程一般分為兩個階段:stage1和stage2,下面分別對這兩個階段進行講解:1.stage1(1)完成基本的硬體初始化。初始化的工作主要包括屏蔽所有的中斷、設定CPU的速度和時鐘頻率、RAM初始化、初始化LED、關閉CPU內部指令和資料cache等。(2)為載入stage2準備RAM空間。為了更快執行速度,通常把stage2載入到RAM空間中來執行,因此必須為載入Bootloader的stage2準備一段可用的RAM空間範圍。(3)拷貝stage2到RAM中。確定s
Time of Update: 2018-12-05
socket API原本是為網路通訊設計的,但後來在socket的架構上發展出一種IPC機制,就是UNIX Domain Socket。雖然網路socket也可用於同一台主機的進程間通訊(通過loopback地址127.0.0.1),但是UNIX Domain
Time of Update: 2018-12-05
"placement new"? 它到底是什麼東東呀?我也是最近幾天才聽說,看來對於C++我還差很遠呀!placement new 是重載operator new的一個標準、全域的版本,它不能被自訂的版本代替(不像普通的operator new和operator delete能夠被替換成使用者自訂的版本)。它的原型如下: void *operator new( size_t, void *p ) throw() { return p;