🚩write in front🚩
🔎大家好,我是謓澤,希望你看完之後,能對你有所幫助,不足請指正!共同學習交流🔎
🏅2021年度部落格之星物聯網與嵌入式開發TOP5~2021部落格之星Top100~阿裡雲專家部落客 & 阿裡雲星級部落客~掘金⇿InfoQ~51CTOP創作者(創作新人榜No.38)~[CSDN]周榜102﹣總榜826 ⇿ 全網通路量35w+🏅
🆔本文由 謓澤 原創 釋出在51CTOP 如需轉載還請通知⚠
📝個人首頁-謓澤51Ctop的部落格📃
🎁歡迎各位→點贊👍 + 收藏⭐️ + 留言📝
📣系列專欄-謓澤51Ctop的分類_51CTO部落格🎓
✉️我們并非登上我們所選擇的舞台,演出并非我們所選擇的劇本📩
運作與調試常用的快捷鍵
運作:Ctrl + F11
使用快捷鍵Ctrl + F11可以快速運作目前選中的資源檔案。
調試:F11:是逐漸 它是會進入函數的 把程式細化到步
shift + F11,跳出函數
F10 是逐行 在某條語句調用一個函數的時候 它不會進入(除非那裡設有斷點)
F9:切換斷點
使用快捷鍵F11可以快速調試目前選中的資源檔案。
斷點調試操作:F5、F6、F7、F8
F5和F9的快捷鍵可以進行配合使用。
在斷點調試時,快捷鍵F6是執行下一步(單步跳過);F5是執行目前調用内部細節步驟的下一步(單步跳入);F7是跳過方法内部的執行步驟,直接傳回到方法外的下一步(單步傳回);F8是跳出斷點調試(跳過調試,繼續執行代碼,在下一個斷點處暫停再次進入斷點調試)。
檢視程式的資訊
ctrl + F5:開始執行不調試,如果你想讓程式而不調試就可以進行使用。
自動視窗:當我們程式在執行中的時候,打開自動視窗,自動的把某些程式的上下文變量自動給你觀察,這就是自動視窗的功能。
局部變量:和自動視窗差不多其實,但是它有一個缺點是它不能想監視誰就監視誰。
監視:監視這個作用就比較好了,當你想監視的話就輸入那個變量的值,它就會呈現在你的監視當中,這樣你就可以随時随地的去進行觀察那個變量了。(監視視窗可以說是部落客用的最多的了)
記憶體:如果我們想進行觀察目前程式執行的記憶體的話,這個時候就是你輸入觀察的記憶體資訊了。
(記憶體視窗也是用的可以說是非常多的了)
調用堆棧:在這裡簡單的和各位小夥伴們說下,像棧一樣的邏輯給大家給展示出來它的一個邏輯,頂上往前放資料再往頂上出資料,可以很好回報程式當中的代碼的調棧的調用邏輯。
初學者掌握調試的内容可以達到事半功倍的效果,多多使用調試可以提高程式執行代碼的效率。
如何寫出好的代碼?
優秀的代碼
- 代碼整潔且規範
- 注釋清晰,且通俗易懂(代指寫代碼的人)
- 可讀性,有效性,可維護性
- bug盡量能夠達到自己能夠預期的範圍之内,就是bug少,或者幾乎沒有bug
- 文檔齊全,不亂去堆放
常見的coding技巧
- 養成良好的編碼風格
- 注釋必要的還是要去添加,提高代碼的可讀性
- 避免編碼的陷阱
- 盡量使用const
- 使用assert,頭檔案#include<assert.h>,在assert();裡面的表達式如果為真的話,assert表達式為真就什麼都不會發生,如果assert的表達式為假,那麼就會報錯。
在這裡簡單的跟大家介紹一下const的關鍵字:const修飾的資料是常類型,常類型的變量或者對象的值是不可以被該變的,也就是被它修飾過的是常量,相比之下const常量和#define是有點類似的,但是在我們用數組的時候還是要區分一下,因為數組裡面 [常量表達式],此時我如果 const int n = 10 假設指派給arr數組,int arr[n] = {0};結果是不行的,雖然加了const關鍵字,但實際上也隻是變量隻不過是不能被修改的變量。那麼如果我們這裡用的是#define—定義符号常量就可以了。
assert代碼使用:
#include<stdio.h>
#include<assert.h>
int My_strlen(const char* pb){
int Count = 0;//計數
assert(*pb != NULL);//保證指針的有效性 NULL —— 空指針
while (*pb != '\0')
{
Count++;
*pb++;
}
return Count;
}
int main(void){
char arr[20] = "nihao C";
int ret = My_strlen(arr);
printf("arr(strlen) = %d\n", ret);
return 0;
}