![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言
云中飞鹤lyl
这个作者很懒,什么都没留下…
展开
-
回调函数理解
在驱动开发过程中,有时候会用到回调函数,根据查询的资料,对回调函数进行简单的解析。回调函数的含义:函数function1在调用函数function2时,给函数function2传参,传递的参数是函数function3的函数名,即函数的地址,当进入function2内执行时会调用执行function3。如下图所示。回调函数的功能可以由普通函数指针调用的方式来替代,但是采用回调函数的优...原创 2020-02-26 17:33:27 · 282 阅读 · 0 评论 -
C语言中数字0与字符'0'易混淆实验一例
本阶段进行了一次代码实验,主要是验证在gcc编译情况下,(1)缺少return函数。(2)数字0强制向字符数组赋值的情况。代码如下:#include <stdio.h>#define MAX 255int main(int argc,char *argv[]){ unsigned char i; unsigned char a[MAX]; int j=0;...原创 2019-08-03 15:36:16 · 400 阅读 · 0 评论 -
Linux驱动模块加载的两种方法、设置方式和其基本原理简述
Linux中驱动的加载一般有两种形式,一种是在内核启动的过程中自动的加载驱动,另一种是在内核启动起来之后,使用insmod命令手动的加载驱动模块。那么这两种方法实现原理有什么不同呢?(1)驱动的加载方式要从内核的配置讲起。Linux的内核配置分为两个步骤:一是采用make xxxx_default_config进行初步的配置,二是采用make menuconfig进行细节上的配置。(...原创 2019-06-14 20:08:20 · 1889 阅读 · 0 评论 -
二维数组与二重指针赋值问题之实验
前一段时间做了一个关于二维数组和二重指针的互相赋值的实验,很有意思,特记录下来。由于数组是指针的语法糖,所以我之前一直认为两者可直接进行赋值转换。后来发现在二维数组中这样做是不可行的,现将实验现象记录如下:实验:#include <stdio.h>int main(int argc,char *argv[]){ int a[2][5]={{1,2,3,4,5},{...原创 2019-03-16 11:10:27 · 1722 阅读 · 1 评论 -
static关键字的两种用法
static用法:(1)修饰局部变量,使局部变量拥有全局变量的生命周期。但其作用域仍为原局部变量的作用域。(2)修饰全局变量或者函数,使函数或者全局变量成为内链接属性,就是在其他文件中不能通过extern引用该全局变量或函数。...原创 2019-01-03 09:42:53 · 145 阅读 · 0 评论 -
uboot启动阶段简要概述分析
1. uboot的启动阶段可分为两部分:(1)第一阶段为汇编阶段,在内部SRAM中运行。(2)第二阶段为C语言阶段,第二阶段是在DDR中运行阶段。2. 各阶段主要完成的功能:1)第一阶段主要完成内容:构建异常向量表。 设置CPU的SVC栈。 识别并暂存启动介质选择。 设置栈(SRAM中的栈)。 关看门狗。 供电锁存。 判断当前代码执行位置(如果是冷启动,当前代码...原创 2018-12-30 19:18:50 · 606 阅读 · 0 评论 -
Linux中头文件的目录
关于Linux中头文件的目录,分为两类:一类是内核源码中的头文件,比如驱动中包含的头文件;一类是应用软件中包含的头文件。这两类默认放的位置不同。(1)内核源码头文件在内核源码目录下include文件夹中。比如#include<linux/init.h>该文件的路径和文件名即: /include/linux/init.h(2)应用层代码包含的头文件在内核源码目...原创 2018-12-29 20:38:35 · 5393 阅读 · 0 评论 -
关于sizeof的实验及其用于结构体的一些现象
之前观察到sizeof的一些现象,现做下记录。实验一:struct test{ int a; int b;}test1;printf("test1=%d.\n",sizeof(test1));实验结果为:test1=8;实验二:struct test{ int a; int b; char c; char d;}test...原创 2018-12-27 10:11:14 · 212 阅读 · 0 评论 -
source insight软件使用方法
相信很多朋友,刚拿到source insight这个软件工具的时候都有些搞不太懂,下边我整理了下用该软件查看文件的步骤,供大家参考。source insight的使用步骤:(1)建立一个project工程(2)点击界面上方的project(3)点击Add and remove project files(4)在filename框里打上所要查看的文件所在的盘(例如G:)(5)在左侧di...原创 2018-07-20 11:54:38 · 749 阅读 · 0 评论 -
C语言函数指针变量与函数指针类型区别
(1)int (*p)(int x);//函数指针变量例:p=func1;//func1为函数名,函数名是一个符号,符号代表了内存地址。所以func1就是一个函数的首地址,将函数的地址赋值给一个函数指针变量,则该指针变量里边存了就是函数的地址。也可以写作p=&func1;注意:前提是func1的参数列表也是int. p(5);//解引用函数,就是执行上边的func1函数。并传参给...原创 2018-07-11 18:54:17 · 1047 阅读 · 0 评论