基础理解
文章平均质量分 59
Poke-code
千里之行 始于足下
展开
-
课后笔记--程序的编译链接原理梳理
1.gcc test.c 经历了什么? // test.cc #include <stdio.h> int main(){ printf("gcc compilation link process."); return 0; } 有 预编译、编译、汇编、链接 四个步骤,下面逐一分析: 预编译 也叫预处理阶段,主要操作有这几个: 展开所以 #define 宏定义 ,进行文本替换 删除所有的注释 处理条件编译 #ifdef #endif原创 2021-06-21 21:31:30 · 170 阅读 · 1 评论 -
volatile关键字
和const一样,volatile也是一种类型修饰符。下面是对比案例: int i =10; int j = i; //语句一 int k = i; //语句二 此时编译器对代码进行优化,因为在一、二两条语句中,i没有被赋值。这时候编译器就认为i的值没有发生变化,所以在语句一时从内存中取出i的值赋给j后,这个值并没有被丢掉,而是在语句二中继续用这个值给k赋值。即编译器不会生成出汇编代码重新从内存中取i的值。 volatile int i= 10; int j...原创 2020-06-16 13:50:20 · 136 阅读 · 0 评论 -
对计算机中文件的理解
在计算机中为了管理和检索数据引入了文件的概念,为了更好的使用文件,引入了文件夹(树形文件目录)。根据文件的功能不同可以将文件分为文本文件、视频文件、音频文件、图像文件、可执行文件等多种类别。这些文件实质上都是由一个个字节组成(0、1比特串),之所以呈现不同的形态是由文件的创建者和解释者约定的文件格式决定的。 例如常见的文本文件是指能够在记事本中打开,并且能看出是一段有意义的文字的文件,即文本...原创 2019-07-17 09:34:21 · 1491 阅读 · 0 评论 -
OpenCV中saturate_cast模板函数的使用
背景 对图像进行点操作,来改变图像的亮度和对比度,原理如下图所示: 这里就出现了一个隐患,我们知道像素值的取值范围为(0,255),但按照上面的公式运算结果会超出取值范围,还有可能是非整数,所以需要用到saturate_cast模板函数,该函数的原理如下: if(data<0) data=0; else if(data>255) data=255; 有了saturate_ca...原创 2019-07-22 14:46:11 · 1101 阅读 · 0 评论 -
C++中细节问题集合(持续更新)
1.如何理解p++? 答:首先后置递增运算符的优先级高于解引用运算符,所以p++等价于*(p++)。p++把p的值加1,然后返回p的初始值的副本作为其求值结果,此时解引用运算符的运算对象是p未增加之前的值,最终,这条语句输出p开始时指向的那个元素,并将指针向前移动一个位置。 2.new和malloc的区别 答: new/delete是C++的运算符,malloc/free是C++/C语言的标准库...原创 2019-08-26 09:39:40 · 118 阅读 · 0 评论