十一月的工作總結
1.標頭檔案包含問題
1)交叉包含問題,在
*.h中包含了標頭檔案。例如:
a.h中
include
了b.h
,而在b.h
中include
了a.h
,則出錯,相當於死鎖。至於在
a.c中
include
了b.h
,b.c
中include
了a.h
,則無此無問題。
2)在包含的標頭檔案中,有多處巨集定義了同乙個巨集名稱,但是巨集定義不一致,導致在某一處的
*.c中使用該巨集出現問題。例如:
在a.h
中,#define _zzp 1
在b.h
中,#define _zzp 0
在sample.c
中,#include 「a.h」
#include 「b.h」
這裡,sample.c
不知應該使用哪個巨集。
解決方法:
1.2.1
)只include
其中乙個
*.h檔案。
1.2.2)
若不得不
include
兩個檔案,則使用比較猥瑣的方法。在
sample.c
中重新定義該巨集,注意該重新定義的巨集應該寫在上面兩個
include
語句之後。
3)對於乙個比較大的
project
,因為各個
module
的*.h
檔案是分散在各個目錄下的,按照常規做法,當某個
module
需要include
其他module
時,include
需要指定這個
*.h檔案的路徑,相當麻煩。現在有兩種做法:
1.3.1
)這種解決方案中,在每個
module
下都有個
lis檔案,我們可以在每個
module
的lis
中將本module
將要被外部引用的標頭檔案新增進去。這樣當
simulator
編譯時會自動將該
lis列舉的
*.h檔案自動
copy
到某個inc
目錄下,該目錄即作為所有
module
搜尋*.h
的地方。而在引用這些
*.h的檔案中,
include
語句只需添檔名。
1.3.2
)對於某個要引用外部
module
的module
,在vs2005
中,project property->
配置屬性
->c/c++->
附加包含目錄中將被引用的
module
加入。這樣處理後會體現在
*.vcproj
檔案。同樣,在引用這些
*.h的檔案中,
include
語句只需添檔名。2.c
語言作用域相關
c語言中,變數宣告應該位於區域性作用域開頭,否則會有
sytex errror、「;
」、endeclare identifer
的error
。若必須要將變數在函式開頭以外地方宣告,那麼另外用
{}建立乙個作用域,且變數宣告位於區域性作用域開頭。
3.debug
相關3.1
)列印log
資訊。通常可在函式入口處列印傳入引數,函式結束處列印返回值等。對於一些開關語句,或是
if/else
語句,若有必要,也可列印。列印時加上函式名等一些特有的標記可以在
debug
時快速定位。
3.2)
debug
的一般步驟。首先,先理清
code
的邏輯,目測下確認與邏輯無關。接著,用工具
debug
。注意不能太過依賴工具,否則
debug
效率會降低。
3.3)一步乙個腳印原則。每編完乙個模組即進行驗證,不要等編了一堆**才驗證,到時
debug
定位是個問題。當然也不能過於頻繁驗證,這就是個程式設計藝術問題了。
3.4)對於
simulator
上編譯斷點不能命中的問題,可用從以下方面排查:
1)**是否已經編譯過,但是仍未將動態庫
copy
到simulator
那邊。2
)simulator
的程序是否已經繫結了程序。
3)程序繫結方式是否為
native。4.
程式設計習慣相關
函式傳入引數時,若型別不一致,要用強制型別轉換。否則,
simulator
雖然編通過,
arm不一定編通過。放到非手機開發上,保證傳入函式的變數型別與函式形參一致,是個好習慣。
5.語法相關
5.1)
巨集定義的的使用。
#define _zzp 1
//… …
#ifdef _zzp
//… ….
#else
//… …
#endif
6.編譯相關
對於靜態
module
,在真機編譯時,需要編譯
amss
。檢視靜態模組是否編譯通過,可以檢視
/build/ms/bin/#project version#
。靜態module
真機編譯完後,燒入真機需要做:1)
software download->cefs
,燒系統。2)
software download->multi image
,燒資源。
動態module
不需編amss
,僅需用
efs explorer
將修改的
module
的mod
和mid
更新下。若需加入資源,也在此操作。
對於一些
module
,在真機上時靜態
module
,用arm
編譯會有問題。而在
simulator
上則是動態模組,用
simulator
編則無問題。
7.軟體管理相關
7.1)
在中國現在的
it界,對於上層的決定,是否就一定要貫徹執行,甚至對於一些不可能的任務、不符現實的需求。乙個個優秀的軟體工程管理工具,是否只是淪為形式化的東西。
7.2)對於測試人員提供的
bug,其
bug描述不清,再加上沒有手機預期規範(
spec
)等進行手機功能預期,所以就增加了開發人員與測試人員的溝通成本。
十一月總結
我是腐爛了花期的 你是藏起花瓣的牧童 十一月初忙完了新生才藝展,大家都把心思完全放在了學習上。以前每週都在忙一些瑣事,上機的時間遠遠不夠,忙了乙個月才發現,雖然很勤奮地把部落格發完了,也把oj的題目做了。可是腦子裡並沒有留下很深刻的印象,對此我很惆悵,也很苦惱,看著別的同學很輕鬆地完成各種題目,真的...
十一月總結
十一月可謂是比較低沉的乙個月,首先部落格就拖到下週很晚才發完,明明下週的專案都已經出來了,有時候甚至出現了不想全完成的想法,還好我堅持下來了,在這個離第15周專案出現還有兩天的日子裡,做完了14周的專案,感悟很深。我是個比較懶的人,做事也不太喜歡動腦子,很少想著主動去完成什麼事。但自己明明就是知道這...
十一月總結
這個月的學習,之前步伐很穩,進步很快,可是月末的時候突然事情較多,有種力不從心的感覺,不過還好,總的來說沒有遇到什麼問題。也就是在這幾天裡我發現了自己的很多缺點,比如不喜歡看書,有的問題書上有,自己還想了半天,還有的問題書上的演算法很簡單,自己的演算法比較複雜,但是自己寫對了從來不看書。現在看來書本...