嵌入式培训学习历程第二十二天
1.const 關(guān)鍵字 : 它限定變量不允許被修改
修飾整形變量時 const int a 等價于 ?int const a
const : 左結(jié)合性
2.傳入?yún)?shù) :當(dāng)參數(shù)指針只做傳入?yún)?shù)使用時,通常使用const 修飾
傳出參數(shù) :?
必須是指針,在函數(shù)內(nèi)部進(jìn)行間接引用
在函數(shù)體內(nèi)部,第一次調(diào)用時指向的空間無意義。
函數(shù)調(diào)用之后,它指向的空間有意義,并作為函數(shù)返回值,
傳入,傳出參數(shù) : 第一次調(diào)用時,指向的空間有意義。并在最后作為函數(shù)返回值返回。
切記 : 不可返回函數(shù)中普通的局部變量的地址
3.函數(shù)返回值時指針
(1).可以返回傳入的地址
(2).可以返回函數(shù)中靜態(tài)內(nèi)存的指針
(3).可以返回動態(tài)分配的內(nèi)存的指針
4.函數(shù)指針的一般定義形式
函數(shù)返回值類型 (*指針變量名)(形參列表)
5.定義函數(shù)指針的根本目的 : 通過指針調(diào)用函數(shù)
本質(zhì)區(qū)別 : 函數(shù)指針可以在程序運行的過程中動態(tài)地決定調(diào)用哪一個函數(shù)
6.回調(diào)函數(shù)
回調(diào)函數(shù)的一個重要應(yīng)用實例就是實現(xiàn)“泛型”算法?! ?/p> 1 #include <stdio.h> 2 3 typedef void (*print_t)(void *); 4 5 /*該函數(shù)用來調(diào)用回調(diào)函數(shù)*/ 6 void print(print_t func, void *arg) 7 { 8 func(arg); 9 } 10 /*回調(diào)函數(shù)1*/ 11 void say_hello(void *arg) 12 { 13 printf("%s\n", (char *)arg); 14 } 15 16 /*回調(diào)函數(shù)2*/ 17 void count(void *arg) 18 { 19 printf("%d\n", (int)arg); 20 } 21 22 int main(void) 23 { 24 print(say_hello, (void *)"hello world!"); 25 print(count, (void *)100); 26 27 return 0; 28 } 回調(diào)函數(shù)實例
7.泛型算法
泛型算法的優(yōu)勢著重體現(xiàn)在對數(shù)據(jù)類型的普適性上 ,即: 對同一類問題,要操作的數(shù)據(jù)類型可能不同,但解決辦法應(yīng)該相同
泛型算法的指導(dǎo)思想就是代碼的復(fù)用。
泛型算法在實現(xiàn)的過程中解決算法的大部分流程,只留下少量的處理細(xì)節(jié)的代碼給使用泛型函數(shù)的用戶去完成
8.函數(shù)指針數(shù)組
int (*a[10])(int, int);
9.擴(kuò)展 :使用typedef 定義函數(shù)指針
typedef int (*p_t)(int, int)
好吧,,今天想錯了,。。等會得重新實現(xiàn)一下。
英語: parameter(參數(shù)) callback(回調(diào)) allocator(分配器)
?
?
?
?
?
?
?
?
?
?
?
?
想俺家小寶貝了。。晚安。。么么
轉(zhuǎn)載于:https://www.cnblogs.com/cxw825873709/p/3258661.html
總結(jié)
以上是生活随笔為你收集整理的嵌入式培训学习历程第二十二天的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: (原创)c++中的类型擦除
- 下一篇: hdu 4352 XHXJ's LIS