習(xí)嵌入式的第10天)
1. 函數(shù)傳參函數(shù)傳參就是主函數(shù)把“數(shù)據(jù)”丟給子函數(shù)干活。數(shù)組傳參傳的是地址子函數(shù)改數(shù)組主函數(shù)數(shù)組直接變相當(dāng)于共用一塊地盤。普通變量傳參傳的是復(fù)印件子函數(shù)隨便改主函數(shù)原版不動(dòng)。void函數(shù)純打工干完活啥也不帶回來不用return數(shù)。int函數(shù)干完必須帶個(gè)整數(shù)結(jié)果回來必須return。2. 遞歸函數(shù)遞歸就是自己調(diào)用自己。兩個(gè)死規(guī)矩1. 必須有出口終止條件不然無限死循環(huán)炸機(jī)。2. 必須往出口靠近參數(shù)越來越小。簡(jiǎn)單理解大事拆小事小事一模一樣拆到最小能直接算再原路返回算結(jié)果。典型階乘、斐波那契。3.讓我印象最深刻的是漢諾塔這道題使我感覺到了計(jì)算機(jī)的魅力用簡(jiǎn)單的命令讓計(jì)算機(jī)給出了完美解決答案以前在我的印象中計(jì)算機(jī)只會(huì)計(jì)算基本上都是通過人的腦力相出整個(gè)構(gòu)架再讓計(jì)算機(jī)來求解這道題讓我打開了視野。必須記錄一下下方就是有三根柱子A、B、CA上面疊著一堆圓盤從上到下越來越大。規(guī)矩小盤永遠(yuǎn)不能放在大盤下面一次只能搬一個(gè)盤子。目標(biāo)把A所有盤子全部挪到C。咱們不用一個(gè)個(gè)硬搬用遞歸思路偷懶假設(shè)一共有n個(gè)盤子。第一步把上面 n-1 個(gè)盤子借助C從A挪到B。第二步把最底下最大的那個(gè)盤子直接從A挪到C。第三步把n-1個(gè)盤子借助A從B挪到C。什么時(shí)候停下遞歸出口n等于1的時(shí)候。就剩一個(gè)盤子直接從起點(diǎn)挪終點(diǎn)不用再拆分了。3. 預(yù)處理命令define宏宏就是純文本替換編譯之前直接全文粘貼不是變量、不是函數(shù)、不占內(nèi)存、沒有類型。規(guī)則1. 末尾絕對(duì)不能加分號(hào)2. 多行宏必須加**反斜杠**3. 帶參宏參數(shù)必須套括號(hào)防運(yùn)算錯(cuò)亂4. 多條語句宏必須套 do{}while(0) 防if報(bào)錯(cuò)一句總結(jié)宏就是全局自動(dòng)替換的懶人替身無腦替換不思考邏輯。