第三週工作學習總結

第三週工作學習總結

任務

  1. 重寫人民幣大小寫轉換;
  2. 實現20位數×20位數的大數乘法;
  3. 閱讀編程規範;
  4. 完成《現代操作系統》前三章閱讀;
  5. 實現控制檯打印*圖形如下:

圖形打印

完成情況

  1. 完成
  2. 完成
  3. 完成
  4. 完成
  5. 未完成

新學內容

一、函數scanf_s

相比於scanf()輸入函數,可以多分配一個單位的內存以保護程序的正常運行,但是不能保證結果正確;

在申請最大容量時,多申請一個單位的內存能夠避免失誤賦值引起的越界操作;

數組名可作爲實參傳遞給指針形參,實際也是將數組首地址賦值給指針,因此在調試處顯示現存數據是隻顯示首地址處的值,類型仍然爲指針類型。要查看數組的值,需要到內存窗口查看;

函數memset()可對任何內存塊進行初始化賦值操作;

當需要內存拷貝時,用memcpy()替換for循環操作,效率要高。

二、編程規範學習

1.頭文件

依賴:本章節特指編譯依賴。若x.h包含了y.h,則稱作x依賴y。依賴關係會進行傳導,如x.h包含y.h,
而y.h又包含了z.h,則x通過y依賴了z。

某產品更有一個“優秀實踐”,用於將.c文件通過工具合併成一個比較大的.c文件,從而大幅度提高
編譯效率。其根本原因還是在於通過合併.c文件減少了頭文件解析次數。但是,這樣的“優秀實踐”
是對合理劃分.c文件的一種破壞。

我們傾向於減少包含頭文件,尤其是在頭文件中包含頭文件,以控制改動代碼後的編譯時間。

2.原則

{0}. 頭文件中適合放置接口的聲明,不適合放置實現;
{0}. 頭文件應當職責單一;
{0}. 頭文件應向穩定的方向包含:依賴的方向應該是:產品依賴於平臺,平臺依賴於標準庫。

3.規則

  • 每一個.c文件應有一個同名.h文件,用於聲明需要對外公開的接口;

  • 禁止頭文件循環依賴;

  • .c/.h文件禁止包含用不到的頭文件;

  • 頭文件應當自包含——自包含就是任意一個頭文件均可獨立編譯;

  • 總是編寫內部#include保護符(#define 保護);

  • 禁止在頭文件中定義變量;

  • 只能通過包含頭文件的方式使用其他.c提供的接口,禁止在.c中通過extern的方式使用外部
    函數接口、變量;

  • 禁止在extern “C”中包含頭文件;

小結

  1. 調試消除warning(s),每一處警告都可能被攻擊;
  2. 測試程序時考慮邊界測試和非法輸入,增強程序健壯性。
  3. 提高程序可讀性,應用編程規範書寫代碼。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章