• 嵌入式培训学习历程第二十二天


      1.const 关键字 : 它限定变量不允许被修改

        修饰整形变量时  const int a 等价于  int const a

        const : 左结合性

      2.传入参数 :当参数指针只做传入参数使用时,通常使用const 修饰

        传出参数 : 

             必须是指针,在函数内部进行间接引用

             在函数体内部,第一次调用时指向的空间无意义。

             函数调用之后,它指向的空间有意义,并作为函数返回值,

        传入,传出参数 : 第一次调用时,指向的空间有意义。并在最后作为函数返回值返回。

        切记 : 不可返回函数中普通的局部变量的地址

      3.函数返回值时指针

        (1).可以返回传入的地址

        (2).可以返回函数中静态内存的指针

        (3).可以返回动态分配的内存的指针

      4.函数指针的一般定义形式

        函数返回值类型 (*指针变量名)(形参列表)

      5.定义函数指针的根本目的 : 通过指针调用函数

        本质区别 : 函数指针可以在程序运行的过程中动态地决定调用哪一个函数

      6.回调函数

        回调函数的一个重要应用实例就是实现“泛型”算法。  

     1 #include <stdio.h>
     2 
     3 typedef void (*print_t)(void *);
     4 
     5 /*该函数用来调用回调函数*/
     6 void print(print_t func, void *arg)
     7 {
     8     func(arg);
     9 }
    10 /*回调函数1*/ 
    11 void say_hello(void *arg)
    12 {
    13     printf("%s
    ", (char *)arg);
    14 }
    15 
    16 /*回调函数2*/ 
    17 void count(void *arg)
    18 {
    19     printf("%d
    ", (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 }
    回调函数实例   

      7.泛型算法

        泛型算法的优势着重体现在对数据类型的普适性上 ,即: 对同一类问题,要操作的数据类型可能不同,但解决办法应该相同

        泛型算法的指导思想就是代码的复用。

        泛型算法在实现的过程中解决算法的大部分流程,只留下少量的处理细节的代码给使用泛型函数的用户去完成

      8.函数指针数组

        int (*a[10])(int, int);

      9.扩展 :使用typedef 定义函数指针

        typedef int (*p_t)(int, int)

      好吧,,今天想错了,。。等会得重新实现一下。

      英语: parameter(参数)  callback(回调)  allocator(分配器)

                                    想俺家小宝贝了。。晚安。。么么

  • 相关阅读:
    python基础:内置函数zip,map,filter
    python基础:网络编程
    python基础:异常捕捉
    jQuery demo
    day14 jQuery
    day13 JS Dom
    页面垂直方向出现两个滚动条问题?
    修复npm ERR! cb()never called!的错误;This is an error with npm itself. Please report this error at:
    vue——解决“You may use special comments to disable some warnings. Use // eslint-disable-next-line to ignore the next line. Use /* eslint-disable */ to ignore all warnings in a file. ” eslint报错,取消文件的rules
    原型链
  • 原文地址:https://www.cnblogs.com/cxw825873709/p/3258661.html
Copyright © 2020-2023  润新知