![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c语言
super-H
目前主要做安卓camera
展开
-
C++ explicit关键字详解
首先, C++中的explicit关键字只能用于修饰只有一个参数的类构造函数, 它的作用是表明该构造函数是显示的, 而非隐式的, 跟它相对应的另一个关键字是implicit, 意思是隐藏的,类构造函数默认情况下即声明为implicit(隐式).那么显示声明的构造函数和隐式声明的有什么区别呢? 我们来看下面的例子:class CxString // 没有使用explicit关键字的类声明, 即默认为隐式声明 { ...转载 2020-06-27 10:28:31 · 295 阅读 · 0 评论 -
严重性代码说明项目文件行 禁止显示状态错误 C4996 fopen('fscanf'、strcmp):This function or variable may be unsafe. 最全解决办法
解决fopen、fscanf 在VS中要求替换为fopen_s、fscanf_s的最全解决办法 -------------- ps:在使用MFC中遇到上述问题,可以通过方法三解决方法一:在程序最前面加#define _CRT_SECURE_NO_DEPRECATE;方法二:在...转载 2020-01-02 13:55:12 · 15957 阅读 · 0 评论 -
C/C++格式控制两次引号
“…size % “PRIu32”.Expected % zu.”这个log一脸懵逼。%zu对sizeof()的格式输出。%zu输出size_t型。size_t在库中定义为unsigned int。“PRIu32”在%之后肯定一种格式控制符。找出定义的地方。用#define定义本质就是直接替换。“PRIu32” -》 ““u””test一个引号时无法编译过。...原创 2020-01-02 10:39:24 · 599 阅读 · 0 评论 -
十六进制转换成float数
下面介绍一下IEEE 32位float数据格式 对于float型数据的数值,并不能通过二进制表示直接得到,而是需要经过一定的运算。 32位float数据格式如下: 含义如下: 计算方法如下: (1)首先看符号位,此例中为1,表示数为负; (2)接着观察带符号的阶码,共8位,计算对应的十进制数,此例中为128。用128-127=1。表示最终要将尾数的小数点向右移1位。若为负,则向...转载 2019-11-19 10:19:42 · 4723 阅读 · 0 评论 -
C语言中的static 详细分析
google了近三页的关于C语言中static的内容,发现可用的信息很少,要么长篇大论不知所云要么在关键之处几个字略过,对于想挖掘底层原理的初学者来说参考性不是很大。所以,我这篇博文博采众家之长,把互联网上的资料整合归类,并亲手编写程序验证之。 c语言代码是以文件为单位来组织的,在一个源程序的所有源文件中,一个外部变量(注意不是局部变量)或者函数只能在一个源程序中定义一次,如果有重转载 2017-07-19 22:13:23 · 375 阅读 · 0 评论 -
C语言中memset函数详解
功能:将s所指向的某一块内存中的每个字节的内容全部设置为ch指定的ASCII值,块的大小由第三个参数指定,这个函数通常为新申请的内存做初始化工作。用法:void *memset(void *s, char ch, unsigned n);程序:[cpp] view plain copy print?#include <string.h> #include <stdio.h> #includ转载 2017-08-17 09:12:26 · 331 阅读 · 0 评论 -
链表的头尾倒置的一种方法
链表的头尾倒置用的方法其实使用的就是链表的头插入法。 我们在利用头插法生成一个链表时候,会发现最先插入的数据,往往会把它放到链表数据的尾端。因此我们可以利用这个性质把链表元素再进行一次头插法,这样可以实现链表的头尾倒置。 具体方法。设置两个新的指针,分别指向元素的首个结点和首结点的下个结点。这样的话在头结点后面打断链表的时候,两个指针,我们可以实现一个指针开始插入数据,一旦插入的话原创 2017-08-07 13:44:13 · 1241 阅读 · 0 评论 -
C语言++i与i++
原 C语言i++和++i的区别 <div class="article-info-box"> <div class="article-bar-top d-flex"> <span class="time">2..转载 2018-05-23 20:54:29 · 6503 阅读 · 0 评论 -
MIPI RAW图数据分析
平台背景:高通平台 10bit rawraw图格式大概分为mipi raw ,Packed raw,Unpacked raw.下面先介绍这几种raw。在ISP图像处理中经常需要面对MIPI RAW数据和RAW数据,这里简单说明一下二者的差别。传感器采集的RAW数据通常为10bit,存储RAW数据需要两个Byte,而其中有6个bit位是空着的,这样就有存储空间浪费。MIPI RAW数据充分利...原创 2019-09-25 14:50:16 · 11134 阅读 · 14 评论 -
C语言中string函数详解
PS:本文包含了大部分strings函数的说明,并附带举例说明。本来想自己整理一下的,发现已经有前辈整理过了,就转了过来。修改了原文一些源码的问题,主要是用char *字义字符串的问题,导致程序运行时崩溃。另外自己重写了部分测试程序,使其更能满足自己测试的需要。不当之处,还请海涵。@函数原型: char *strdup(const char *s) 函数功能: 字符串拷贝,目的空间由该函数分转载 2017-07-23 16:02:33 · 1414 阅读 · 0 评论 -
想成为嵌入式程序员应知道的
C语言测试是招聘嵌入式系统程序员过程中必须而且有效的方法。这些年,我既参加也组织了许多这种测试,在这过程中我意识到这些测试能为面试者和被面试者提供许多有用信息,此外,撇开面试的压力不谈,这种测试也是相当有趣的。 从被面试者的角度来讲,你能了解许多关于出题者或监考者的情况。这个测试只是出题者为显示其对ANSI标准细节的知识而不是技术技巧而设计吗?这是个愚蠢的问题吗?如要你答出某转载 2017-07-31 19:27:08 · 421 阅读 · 0 评论 -
关于C语音二维数组的进一步理解
最近又探究了c语言中的二维数组。又有了新的收获。所有mark一下。 一维数组还好理解,二维数组实质就是一维数组,然而其单位不是C语言中基本的类型了,而是一个一维数组。那么三维数组可以理解为一位数组其单位为二维数组。然而我们关心数组的三个要素:数组名(地址) ,步长(它的单位的长度), 范围(0-n 与首地址偏移的量)。先看下面的列子慢慢体会。可以看出i原创 2017-07-12 21:36:02 · 479 阅读 · 0 评论 -
C语言中的4字节对齐详解
摘要:编译器通常采用的默认字节对齐规则:对于类型T,在n bit系统中,保证变量首地址在min(sizeof(T), n/8)字节位置上,以保证最少读周期。以下为原文:—————–其实我也是一条分割线—————— 所谓的字节对齐,就是各种类型的数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这个就是对齐。我们经常听说的对齐在N上,它的含义就是数据的存放起始地址%N==0。具体对齐规则会转载 2017-07-04 18:38:36 · 6618 阅读 · 1 评论 -
关于C语言中十六进制移位问题
最近在查看一些sensor驱动曝光读写寄存器时,由于曝光数值往往由多个寄存器控制。所以对曝光值的读写需要把高底位不同寄存器数值计算到一起。驱动这里就涉及到移位,如下:为了避免遗忘,小白我就亲测,然后Mark出来。 总结起来就一句话,4位二进制为1位十六进制,所以十六进制移动1位,二进制需要移动4位。原创 2017-06-26 19:31:36 · 17886 阅读 · 5 评论 -
关于C语言中a++和++a的问题
查看camera驱动中有一些自增变量,一直混淆。这次自测并mark一下。 总结一句话:(a++)(++a)总体的值都会+1。区别在于a++对a的值先进行操作后进行自增,而++a先进行自增运算,后进行赋值运算。同理a-- 与--a。原创 2017-06-27 10:45:21 · 930 阅读 · 0 评论 -
关于c语言中三目运算符使用注意
最近在查看camera驱动时候,发现一段这样写的对于我这个小白初见有点蒙。最后想了想无非就是c语言中的三目运算符的嵌套。上图等价于iReg = iReg 0xf8?0xf8:iReg); 理解为iReg的值和0x10比较,小于0x10为0x10。 如果不成立就取(iReg>0xf8?0xf8:iReg)这个值。再进行一次判断即可。写出来mark一下。然后关于c语言的三目运算又亲测了一下。原创 2017-06-27 14:30:43 · 3053 阅读 · 3 评论 -
关于C语言数组与指针的联系一起
在理解数组和指针相关内容时候总是犯迷糊,不能把他们很哈的联系到一起。这个地方也很绕,反反复复学了几遍还是不能很好记忆理解,今天把他们mark一下,方便今后有时间查找,反复记忆。通过下面实验的照片理解。最后画的一个总结图。原创 2017-07-15 17:06:00 · 401 阅读 · 0 评论 -
C语言中typedef和define一些理解
C语言的博大精深之处也在于他的类型丰富,由基本类型,构造出其他类型。typedef 可以给一个类型起个别名,方便后期的使用。ypedef的使用与宏定义define有些许的相似。其中define在与处理的过程中进行一个替换。省去了更改代码的工作量。下面的列子应该注意。如我们在定义时候:int * a,b; 那么a是 int *型的,而b则是int型。#define CTES原创 2017-07-29 23:49:08 · 355 阅读 · 0 评论 -
数值后缀+H B表示几进制
mark一下。比如说看到这句话:The write device address is 42H 对于我做个小白说瞬间有点懵逼感觉。网上搜了一下。数值后缀的表示进制。记录下,方便以后查阅。 在数字后加一缩写字母后缀作为不同进制数的标识。各种进制数的后缀字母分别为: B :二进制数。 binary Q (O):八进制数。 octonaryD :原创 2017-07-19 14:32:08 · 12287 阅读 · 0 评论 -
大端(Big Endian)与小端(Little Endian)详解
大端(Big Endian)与小端(Little Endian)简介///////////////////////////////////////////////////////1. 你从哪里来?端模式(Endian)的这个词出自JonathanSwift书写的《格列佛游记》。这本书根据将鸡蛋敲开的方法不同将所有的人分为两类,从圆头开始将鸡蛋敲开的人被归为BigEndian,从尖头开始将鸡转载 2017-07-12 20:01:46 · 1394 阅读 · 0 评论