2006年10月24日一週綜述

        2006年10月24日 星期天 天氣晴         Last Modify: Oct 24 2006

==================================================================================

    感覺就像是在做夢,每天都有很多事要做,每天都很忙,但是事情過去之後卻什麼都沒有留下,什麼結果都沒有,在過去的這些天裏一直想寫日誌但是卻一直都沒有時間,雖然學到了不少東西,但有的卻已經無法清晰的再現了。

    上週真的是太累了,上上週週六吃了那學校外面的肉夾膜拉肚子,週日和週一躺了一天,週一晚上纔算有了點精神,感覺是快餓死了。上週校友會的事情也沒有進展,不過在週五作了一張新的主頁的展示圖片,但這一週發展速度迅猛,週一老師就提供了教務處(XXXX年起)和就業中心(XXXX年起)的畢業生的數據。唯一的一點遺憾是教務處那裏沒有提供列的標題,那一堆數據沒有什麼作用……不過老師居然已經答應了2日之內給出答覆,應該說問題就不大了。

    上週另外一點可喜可賀的就是那些巨多的實驗……數據結構順利的完成了第二個實驗,可以說基本上是獨立完成的,自己爲了一個小錯誤調試到12點……說來也挺慘,具體的原因在下文中揭曉。彙編試驗讓我更深入的瞭解使用16位下的彙編和中斷是多麼的辛苦,AX這個結果寄存器是多麼的容易改變,與其說Intel CPU擅長堆棧操作不如說是Intel CPU只有8個通用寄存器和RISC的300多個寄存器相差甚遠,看來擁有至高無上的權利的時候還有巨大的操作困難……還有就是數據庫實驗,中間出了一個小插曲,我定義的默認值太長,而設置的char(2)顯然不夠,每當輸入的那一列爲空的時候就告訴我數據被截斷……就這個小問題讓我鬱悶了好一會。

    這個周又作彙編實驗了,老師居然讓我們用debug來顯示中斷向量表,其實中斷向量表就是內存最開始的那些數據,也就是-d 0000:0000,想不到我居然把當初學的debug的東西忘得差不多了……

    今天最終搞明白了MakeFile的用法,和如何使用nmake來編譯文件。在此發現了一個h的問題,要防止反覆定義。方法如下:

#ifndef SQ_H

#define SQ_H

……你的h文件的定義

#endif

 

    

下面就是出現問題的代碼段:

bool Pop(SqStack *s, char *e)

{

    //printf("Before s.top-s.base=%d/n",s->top - s->base);

    //printf("Current s.top=%c/n",*s->top);

    if(s->top == s->base ) return ERROR;

    s->top = s->top - sizeof(char);        //MayBe some thing wrong here.

    *e = *(s->top);

    //todo:爲什麼對於指向char int 之類的變量的指針不能直接指定地址而要用*?

    //傳入的&info的地址爲一常量,不能夠變化,雖然這裏的值變了,但是無法返回值。

    //可以換成指針。

    //printf("After s.top-s.base=%d/nShow s.top=%c e=%c",s->top-s->base,*s->top,*e);getch();

    return OK;

}

 

--------Aug 28, 2007 Added--------------------------------

現在看起來那個時候寫的實名認證部分的代碼真是讓人頭疼,現在發現原來那些巨多的if和select Case都不需要,我們要分解成爲一堆的類,這樣才合適……纔是真正的面向對象,而不是所謂的萬能類……

 

 

        Rev 1.0        Creat Document Oct 24 2006

        Rev 1.1        Add Content Aug 28 2007

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章