![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
相當初學
那是大哥
人
展开
-
對絕對地址的操作
嵌入式系統中往往需要讓程序跳到內存的某個地址去執行,比如想讓程序跳轉到絕對地址是0x100000去執行,應該怎麼做?這樣:*((void (*)(void))0x100000)();即可。解釋一下,想讓程序跳到某個絕對地址去執行得用函數指針,這或許也是函數指針的一個妙用吧!語句void(*)(void)聲明了一個返回值是void、無參數的函數的函數指針,這個指針沒有名字原创 2007-10-15 15:20:00 · 1820 阅读 · 1 评论 -
漢字簡體轉正體類及測試程式
做了一個將簡體漢字轉化成正體漢字的類ChnTrans,轉化賴字典文件。其中用Open函式打開字典文件(有FILE *版本和CFile版本);用TransChar轉化一個漢字;用Trans轉化一個字符串。 ChnTrans.h文件內容:#pragma once #define UNICODE_FILE_FLAG 0xFEFF #define MAX_UNI原创 2008-09-18 22:11:00 · 452 阅读 · 0 评论 -
sizeof運算符需要注意的問題
sizeof運算符用于取得“東西”的大小,以字節為單位。比如sizeof(char)就返回1,表明char數據類型占一個字節。又如:char str[] = "12345";printf("%d ", sizeof(str));//等于6字符串str占六個字節,這樣做是可行的。如果strlen(str)一把,則等于5,因為strlen返回的是字符串的字符數,不包含結尾的/0。可是原创 2007-11-07 17:29:00 · 673 阅读 · 0 评论 -
VC的MySQL編程
在你的程式中使用數據庫是個不錯的注意。如果已經有可用的MySQL服務器,在VC中可以按照如下方法實現與數據庫的駁接。1、找來MySQL(Win32)安裝目錄下的include文件夾, 將其添加到VC頭文件目錄列表中;(VC6 -> Options -> Directories -> 加入此目錄)(VC2005 -> 工具 -> 選項 -> 項目和解決方案 -> VC++目錄 -> 顯示原创 2007-10-11 14:23:00 · 1112 阅读 · 1 评论 -
什麽是射頻
(轉自http://www.afzhan.com/article/show/3240.html)射頻簡稱RF射頻就是射頻電流,它是一種高頻交流變化電磁波的簡稱。每秒變化小於1000次的交流電稱為低頻電流,大於10000次的稱為高頻電流,而射頻就是這樣一種高頻電流。有線電視系統就是採用射頻傳輸方式的。 在電子學理論中,電流流過導體,導體周圍會形成磁場;交變電流通過導體,導體周圍转载 2007-10-26 09:00:00 · 497 阅读 · 0 评论 -
OpenURL(Get Web)
// SS.cpp : 定義主控台應用程式的進入點。//#include "stdafx.h"#include stdio.h>#include WINSOCK2.H>#include Windows.h>#include "winsock.h" #include "wininet.h" #pragma comment(lib,"wsock32.lib")#pragma comm原创 2007-10-08 00:41:00 · 445 阅读 · 0 评论 -
關于調試循環、遞歸的一點技巧
前幾天在網上看到一篇文章,一位老兄說他有一次調試程序,一個循環跟蹤到七十多趟(循環了七十多趟)才找到問題,累得他要死。今天我調試自己的遞歸同樣遇到了這樣的問題,大概在反復調用自己n多次時出現了問題,可VC 只能一步步的來,怎么辦?我想了幾個辦法,可以解決這個“調試難”的問題。(會用__DEBUG__宏的同志可以不看第一步)1、在你要調試的函數的文件的適當位置加入宏:#ifdef原创 2007-10-19 17:53:00 · 582 阅读 · 0 评论 -
μCOS-II實踐
這是一件很有意義的事情,實踐μCOS-II感覺還是很好的。手頭有塊周立功EasyARM2200(LPC2210)的開發板,今天研究了一下,把μCOS-II條通了,比較高興,拿出來說說。基本上都是按照書上做的。實驗是這樣的:板子上的JP1控制蜂鳴器電平,μCOS-II移植成功運行后每短接一下JP1,蜂鳴器就叫喚兩聲兒。先把JP1跳開,把JP6設置為BANK0-FLASH、BANK1-RA原创 2007-09-10 23:13:00 · 1088 阅读 · 4 评论 -
面試題一則
前些時去面試在卷子上做到了這么一題(C),很有意思,拿出來共賞之。int a[5] = ...{1, 2, 3, 4, 5};int *p, *q;p = a;q = &a[3];//問a[q - p]多少?當時我想答3,可一看選項:0、1、2、4,。。。索性就填了4,後來回來一編譯,就是4,汗。。。下面我們來仔細研究研究。p是指向數組a的整型指針,它是“瞄準”數組a的原创 2007-08-28 11:25:00 · 691 阅读 · 1 评论 -
指針運算四則
要是看C語言的書,上面一定會說指針運算僅對數組有意義,這話似乎也不錯,當然如果你打算對計算機系統徹底研究就不能拘泥於數組中的指針運算了。下面我們來看看幾個例子。定義一個指針,然它指向內存中的0x10000000位置。void * ptr = (void *)0x10000000;然后對它賦值:這樣嗎?*ptr = 100;當然不行,ptr是無類型(void)的指針,不能這樣操原创 2007-08-23 14:59:00 · 722 阅读 · 0 评论 -
VC、GCC問題個一則
VC下:VC 2005 error C3872: 0x3000: this character is not allowed in an identifier煩死了!就那么兩三行碼子,出來是幾個這樣的錯誤,左看右看沒問題,咋整地捏?這是由你直接從別處復制了文本粘過來的,其中可能有一些亂碼什么的看不見也貼過來了,故而出錯。解决辦法:在出現問題的行重新將空格/制表符整理輸入一遍即可。原创 2007-08-21 17:44:00 · 649 阅读 · 0 评论 -
占空比、電平觸發、邊沿觸發
來自百度 占空比的图例 占空比(Duty Cycle)在电信领域中有如下含义: 在一串理想的脉冲序列中(如方波),正脉冲的持续时间与脉冲总周期的比值。 例如:脉冲宽度1μs,信号周期4μs的脉冲序列占空比为0.25。 在一段连续工作时间内脉冲占用的时间与总时间的比值。 在CVSD调制(continuously variable slope delta mo原创 2009-06-06 01:22:00 · 1169 阅读 · 0 评论 -
C語言重學
重抄舊業,C語言細節忘了不少,重學原创 2011-04-07 23:38:00 · 929 阅读 · 0 评论 -
C語言你沒搞清的東西——移位
今天我們討論一下移位的問題,這個操作是如此簡單,可又有多少人真正搞明白了呢?問題:printf("0x%X\n", (0x80 > 31);結果是多少?如果你不能很肯定的得出正確結論,並且加以解釋,建議你閱讀本文。答案:0xFFFFFFFF C語言你沒搞清的東西——移位【c_bg44】轉載請注明出處 C語言中,有左移和右移操作,分別是>。原创 2012-04-14 22:47:01 · 4383 阅读 · 0 评论 -
【數據結構】IP地址配置存儲探究
單純的IPv4地址是個32位的整數,正好用一個ULONG存放,子網掩碼也是如此,這沒問題。可是存在大小端的情況,很多時候我們還需要使用點分十進制的格式,子網掩碼還有進行長度轉換的需求,如255.255.0.0 -> 16,這樣一來就複雜了。不論如何,我們還是想使用較簡單的辦法,使用一個ULONG,在這裡我們寫作VOS_U32,於是乎我們似乎可以這樣:typedef VOS_U32 IPAD原创 2012-03-17 16:24:24 · 967 阅读 · 0 评论 -
以太网的組播地址映射方法
乙太網的 組播IP地址映射到MAC地址方法都被講爛了,我簡要的說明下,5步。1、MAC地址是48位的,IP地址是32位的,所以要把32位的IP地址映射到48位的MAC上原則上沒問題,MAC還多出 48 - 32 = 16位來;2、然而48位的MAC如果作為組播使用,其高24位固定為 0000 0001, 0000 0000, 0101 1110 == 01 - 00 - 5e,這是規定的。原创 2012-03-02 14:50:09 · 1917 阅读 · 1 评论 -
華為VRP MPLS RSVP-TE隧道配置實例
R0打一條隧道到R1,使能了組播。拓撲很簡單,一看配置就知道了。WVRP調試通過。R0# sysname Quidway# multicast routing-enable# mpls lsr-id 1.1.1.1 mpls mpls te mpls rsvp-te mpls te cspf#interface Ethernet0/0/0原创 2012-02-14 11:14:41 · 920 阅读 · 0 评论 -
Linux下的並發網路服務器模型
openSUSE 11.4 - 2.6.37.1-1.2@x64編譯通過 #include #include #include #include #include #include void str_ser(int sockfd);int main(void){ int sockfd = 0; int con_fd = 0;原创 2012-01-27 18:58:23 · 1415 阅读 · 0 评论 -
宏的另一種用法
這裡要說的不是用宏來防止頭文件重複包含。在結構中定義一個宏,以前在公司的軟件里,他們經常這樣用,還是比較巧妙的。 比如一個接口結構://邏輯接口typedef struct tag_stRM_IM_LogicIntf{ VOS_U32 u32IfnetIndex; VOS_U32 u32PhyIndex; //VOS_U32 u32Logic原创 2011-11-01 09:33:47 · 626 阅读 · 0 评论 -
字節對齊在網路中需要注意的事項
以前在單片機上寫一個PPPoE的協議棧,發送的幀中總是多出一個字節,導致協商失敗。抓包發現該字節還是變化的。。。後看來走讀代碼、查看結構,忽然想起,該單片機是16位的,默認按量字節對齊,結構中出現了一個1字節的空洞,發包時把這個空洞也發出去了,後來改成按1字節對齊問題解決。這原创 2011-08-31 00:03:13 · 602 阅读 · 0 评论 -
堆棧上的緩衝區溢出一
溢出是個很有意思的話題,緩衝區溢出又是當中最常見的一種情況。如果把緩衝區放在堆棧上,造成溢出,那麽有可能情況就變得很妙,比如程序就執行了你的ShellCode,gogo!先來講將基本原理。堆棧大家都很熟悉了,這裡就不說了,我們來復習一下程序的函數/過程調用。函數/過程是通過堆棧完成的,之所以這麽說是因爲程序通過堆棧向被調用的函數傳遞參數,當然沒有參數就不傳,同時使用堆棧來保存現場,待被原创 2007-10-15 11:14:00 · 1097 阅读 · 0 评论 -
【Windows下多線程實現(命令行)】
命令行程序也可以多線程。網上查了很多文章都是講視窗界面的,這裡我寫個命令行的,框架很簡單,如下: // VRP.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include "windows.h"#include原创 2011-07-25 11:59:01 · 927 阅读 · 0 评论 -
調用內聯函數之問題
<br />一個類的成員函數調用另一個類的公有成員函數應該沒問題,見如下代碼:<br /> //CMDTREE_RETCODE CCmdTree::Insert(const CString * const m_postrCMD, const VOS_VOID * const pfCmdProc){ ... //生成一个新節點 CCmdTreeNode * poCmdTreeNode = new CCmdTreeNode; ... poCmdTreeN原创 2011-04-24 22:42:00 · 839 阅读 · 1 评论 -
LPC2210啟動代碼步驟(周立功版)
LPC2210系統啟動代碼步驟:1.初始化外部總線控制器;主要工作是:1. 初始化引腳鏈接模塊的值,即PINSEL2;2. 配置外部第0個存儲區和第1個存儲區,設置16位總線寬度,總線速度調到最慢 2.初始化堆棧; 3.初始化目標板;主要工作是:1.設置存儲器影射控制模式;2.設置時鐘;3.設置存儲器加速模塊;4.初始化向量中斷控制原创 2007-08-15 18:01:00 · 1296 阅读 · 0 评论 -
分字段讀取函式
你經常會需要這樣的函式:把字符串:"字段一,字段二,...字段N"(逗號分隔開)中的字段分別讀取到字符串Field_1、Field_2...Field_N中,咋辦?用如下這樣一個函式吧~ //字段分離讀取函式BOOL GetFields(TCHAR *wLine, TCHAR **FieldArray, const unsigned char FieldN)...原创 2007-08-06 13:52:00 · 621 阅读 · 0 评论 -
一道小題
1)某計算機字長32,容量8mb,求按雙字編址,求它的尋址範圍? 0~~1m 2)某計算機字長16,容量2mb,求按半字編址,求它的尋址範圍? 0~~2m 其中和字長有没有關係,半原创 2007-01-14 23:29:00 · 658 阅读 · 0 评论 -
LLK-WINDOW-CATCH(文本文件版本)
抓“連連看”窗口之圖,分析后存入文本文件screen.txt中。存入格式:{0xA8, 0x88, 0x7E, 0x00, ...}一個像素3個字節,分別是藍色字節、綠色字節和紅色字節。存儲為文本格式,使用時注意轉換。/////////////////////////////////////////////////////////////////////////////////原创 2007-01-10 22:09:00 · 474 阅读 · 0 评论 -
自動生成鏈表
前幾天因爲測試需要寫了這段自動生成一個鏈表的代碼,貼上來興許以後用得着。 typedef struct card...{ card * previous; char index; card * next;}CARD;CARD * cpHead, * pCurrent, * pTmpCard;char i;//生成4個節點的鏈表,表頭用指針cpHead標記for(i =原创 2007-02-13 01:26:00 · 585 阅读 · 0 评论 -
指針之内存分配
指針之内存分配 我個人對内存分配之事宜十分之感興趣,想起來了便把一些經驗什麽的寫出來,也可供大家參考。 首先,從簡單的說起。 int myint, * p_myint; //聲明了兩個變量,一個整型的變量myint,一個指向整形變量的指針變量p_myint 兩個變量都未初始化。 int myint = 100, * p_myint; //聲明了兩個變量,一個整型的變量myint原创 2007-01-04 14:15:00 · 643 阅读 · 0 评论 -
fopen與fread函數
[C语言]fopen()函数的参数说明[ 2006-10-03 09:24:26 | 作者: bewalking ] 格式:文件指针名=fopen(文件名,使用文件方式)参数:文件名 意义"C://TC//qwe.txt" 文件C:/TC/qwe.txt"qwe.txt" 和程序在同一目录下的qwe.txt文件使用方式 意 义“rt” 只读打开一个文本文件,只允许读数据 “w原创 2007-01-01 22:15:00 · 2992 阅读 · 0 评论 -
視窗:基於基類CApplication-位圖(六乙)
視窗:基於基類CApplication-位圖(六乙) 老子最近研究位圖(就是bmp,可以理解為Windows下的圖片),相當之煩人,書上寫的都是錯的!氣死了,於是潛心鑽研,完成了個小例子,發商來供初學者學習吧。本次將把一個位圖文件(bitmap1.bmp)添加到工程中,主程式還是老樣子為一個全屏帶菜單欄的窗口。通過點選菜單“檔案”->“裝載”將此圖片(拉伸,如有必要)顯示在窗口中。如下圖原创 2006-12-27 15:54:00 · 662 阅读 · 0 评论 -
視窗:基於基類CApplication-菜單、對話框及全屏(四)
視窗:基於基類CApplication-菜單、對話框及全屏(四)這次我們要來討論的是菜單的使用和全屏模式(全屏模式中還有菜單欄,有些奇怪~:)),我們越來越接近一個遊戲的編程了。看看程式運行效果: 好,廢話少說go go!(工程文件打包下載,點擊這裡)先説明,咱們編出來的程式將會是:運行此程式進入全屏模式,黑色背景最上有一個菜單欄,單擊“檔案”菜單彈出“退出”選項,單原创 2006-12-22 11:56:00 · 746 阅读 · 0 评论 -
視窗:簡單程式-擊鍵文字改色(一)
簡單程式:擊鍵文字改色先來看程序運行效果:擊鍵後變成如下效果:文件 | 新建 | Win32 Application | 工程 “擊鍵變色” | An empty project | 完成 | 確定,文件 | 新建 | C++ Source File | 文件 “main”,然後將如下代碼貼到main.cpp文件中,再編譯 | 構建 “擊鍵變色”即可。下面是代碼:/原创 2006-12-20 00:02:00 · 634 阅读 · 0 评论 -
視窗:基於基類CApplication-圖標、光標(三)
視窗:基於基類CApplication-圖標、光標(三)本例使用前文之CApplication類(.h+cpp)構建一窗口,並改變程式圖標及窗口内光標。(註明:俺嚴重大言不慚地認爲俺寫得還是比較通俗易懂的,要怪就怪csdn不能插圖!)VC(用向導),新建項目(簡體的是“工程”),Win32應用程式,空程式(項目)。然後原文件中添加CApplication.cpp,頭文件中添加CAp原创 2006-12-21 23:30:00 · 871 阅读 · 0 评论 -
Linux-起步-獲取系統訊息
雖然是起步,但是“Hello Word”我們就不寫了,在Linux下你寫標準的C就能運行了。我們還是從它開始。簡單小程式,打印當前登錄名、計算機名、系統時間、IP地址。 #include stdio.h>#include time.h>#include sys/types.h>#include sys/socket.h>#include unistd.h>#include ne原创 2007-03-14 15:43:00 · 610 阅读 · 0 评论 -
視窗:網路-(完成端口)-最簡示例(客戶端)
可算Windows客戶端最簡單的例子了,看看吧。//連接到服務器端(127.0.0.1)555端口上,發送字符串1234567過去,然後關閉連接,退出程序。#include windows.h>#include stdio.h>#pragma comment (lib, "WS2_32.lib")#define DEFAULT_PORT 555int main(void)...{原创 2007-03-20 16:26:00 · 638 阅读 · 0 评论 -
寬字符讀取函式(Unicode小端排序)
這幾日處理漢字,用Unicode,fgetwc不好用,就自己寫了一個,讀取Unicode小端排序文件的,一次取一個字符(2個字節),返回之。讀到文件末尾返回WEOF。如果最后一次僅有一個字節,則按小端排序處理之,即如文件內容為(十六進制)11 22 33則讀兩次返回值結果為:2211, 0033即33再讀返回WEOF。 //寬字符讀取函式,等同ANSI的f原创 2007-07-31 11:09:00 · 749 阅读 · 0 评论 -
++?唉~~~
這幾天研究了一下C++,唉~~~~這就是我的感覺。。。老子從來不用++,看了一下覺得很不好,從而決定繼續不++。++搞得也很麻煩,編譯又重新搞了些東西,在視窗下一不小心就編譯成++的形式了,在連接時連不上,比較煩。給別人寫庫,你告訴他你是C寫的,他還老大不高興,說要重新定義連接啥地麻煩,那么大家同意就不要++嘛,代碼也統一,不要看得暈頭轉向地,什么類不類,真累。。。老子前些時匯編也是原创 2007-07-14 18:03:00 · 538 阅读 · 0 评论 -
Win32下的匯編調用C標準庫函數
在Win32環境下匯編,自然難免或必然要用到C標準函數,以下是匯編調用C標準函數的方法。C標準函數包含在MSVCRT.LIB文件中,此文件在VC中可以找到。把它復制到匯編的庫目錄下,然后包含進去。includelib masm32/lib/msvcrt.lib然后還需宣告你將要時用到的函數的原型,用如下語句:extern C printf:dword;或者printf原创 2007-07-07 16:35:00 · 1930 阅读 · 0 评论 -
兩個C語言造的cgi小例子
轉載+老子修改這是一個最簡單的cgi,它根據瀏覽器的不同打印出一句話。#include stdio.h>#include stdlib.h>#include string.h>void main(void)...{ char *http_user_agent; printf("Content-type: text/plain "); http_user_agent =原创 2007-03-30 16:09:00 · 2154 阅读 · 0 评论