张痕
码龄12年
  • 99,326
    被访问
  • 55
    原创
  • 323,444
    排名
  • 21
    粉丝
关注
提问 私信
  • 加入CSDN时间: 2010-08-19
博客简介:

dream_feng的博客

查看详细资料
  • 2
    领奖
    总分 167 当月 1
个人成就
  • 获得45次点赞
  • 内容获得7次评论
  • 获得256次收藏
创作历程
  • 21篇
    2021年
  • 15篇
    2019年
  • 19篇
    2018年
成就勋章
TA的专栏
  • C基础
    13篇
  • C++
    5篇
  • 英语
    7篇
  • arm9 裸机 驱动
    2篇
  • 编程基础
    3篇
  • 专业基础
    2篇
  • 工具使用
    3篇
  • 人文素养
    5篇
  • 身体健康
    1篇
  • stm32
    6篇
  • linux
    5篇
兴趣领域 设置
  • 移动开发
    android studio
  • 软件工程
    性能优化
  • 最近
  • 文章
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

C++ 06 多态

/*一、多态性的概念polymorphism 多态性是面向对象程序设计的一个重要特征。一种语言如果只支持类而不支持多态,只能说是基于对象的,不能被称为面向对象的。 1、多态,指一个事物有多种形态。C++中,多态性是指具有不同功能的函数可以用同一个函数名来调用。 2、表述:向不同的对象发送同一个消息,不同的对象在接收时会产生不同的行为(方法),用各自的方式去响应共同的消息。 消息,指调用函数;不同的行为是指不同的实现。#如函数的重载,运算符的重载都是多态现象。如学校校长向社会发布一个消息——开学.
原创
发布博客 2021.08.22 ·
44 阅读 ·
0 点赞 ·
0 评论

C语言13 指针与数组2=数组名的本质+数组名作首地址+数组做函数参数+sizeof指针

一、数组名的本质(1)数组名指代一种数据结构,这种数据结构就是数组;例如:char str[10];cout << sizeof(str) << endl;输出结果为10,str指代数据结构char[10]。(2)数组名可以转换为指向其指代实体的指针,而且是一个指针常量,不能作自增、自减等操作,不能被修改;char str[10];str++; //编译出错,提示str不是左值 (3)数组名作为函数形参时,沦为普通指针。Windows NT .
原创
发布博客 2021.08.07 ·
59 阅读 ·
1 点赞 ·
0 评论

C++ 04运算符重载

//#define _NO_OVERLOADING_ADD_COMPLEX_ //不用重载,使用函数//#define _OVERLOADING_ADD_COMPLEX_ //复数加号重载//#define _OVERLOADING_ADD_COMPLEX_FRIEND //友元函数作为重载函数//#define __OVERLOADING_TWO_OPERATOR__ //重载双目运算符//#define __OVERL...
原创
发布博客 2021.08.07 ·
48 阅读 ·
0 点赞 ·
0 评论

C语言12 指针基本操作2+指针与数组

===================数组和指针的基本关系: 数组大小和起始地址指针1、C语言只有一维数组,而且其大小必须在编译期间确定下来。 但是其组元素可以是任何类型,如另外的数组。因此可以构建多维数组。2、对一个数组,只可确定其大小,以及获得指向组下标为0的元素的指针。 其他的关于数组的操作,如组下标等,也是经由指针进行的,二者是等价的。3、int calender[12][31]; sizeof(calender) = 12*31*4; 除了sizeof...
原创
发布博客 2021.08.06 ·
65 阅读 ·
0 点赞 ·
0 评论

C++编程原则

1、先搭框架,逐步扩充,由简到繁,最后完善。 边编程,边调试,边扩充。先编写出最简单的程序框架,成一个可供运行的程序。不要企图在一开始就解决所有的细节。类是可扩充的,可以一步步地扩充它的功能。直接写好程序,每一步都要调试,调试通过了前面一步在做下一步,步步为营。2、类的设计和主函数的精简。 面向对象的程序设计中,最关键的工作是类的设计,所有的数据和数据的操作都是在类中完成。只要把类定义好,编程工作就简单了。 主函数精简,只是调用对象的成员函数,完成相关操作。大多数情况下...
原创
发布博客 2021.08.06 ·
35 阅读 ·
0 点赞 ·
0 评论

new concept 3 = 09Flying cats

Cats never fail to fascinate human beings. They can be friendly and affectionate towards humans, but they lead mysterious lives of their own as well. They never become submissive like dogs and horses. As a result, humans have learned to respect feline inde
原创
发布博客 2021.08.06 ·
26 阅读 ·
0 点赞 ·
0 评论

C语言11 内存指针操作+函数指针+typedef

///////////////////////////////////////////指针访问内存1、内存地址理解{ unsigned char *p1; unsigned long *p2; p1=(unsigned char *)0x801000; p2=(unsigned long *)0x810000;}请问p1+5=? ;p2+5=? ;答:p1+5=0x801005;p2+5=0x810014;在32位系统中,字...
原创
发布博客 2021.08.05 ·
161 阅读 ·
0 点赞 ·
0 评论

C语言10 指针基本操作+引用+指针分配内存GetMemory

1、一个32位的机器,该机器的指针是多少位?可以访问多大的地址空间?答:32bit 2^32 = 4G 地址总线宽度决定了CPU可以访问的物理地址空间.简单地说就是CPU能够使用多大容量的内存.对于386以上的微机系统.地址线的宽度为32位.最多可以直接访问4096MB (4GB)的物理空间。指针即是地址值,地址的编号。指针是多少位只要看地址总线的位数就行了。80386以后的机子都是32的数据总线。所以指针的位数就是4个字节了。8位处理器、16位处理器、32位处理器和64位处理器,...
原创
发布博客 2021.08.05 ·
80 阅读 ·
0 点赞 ·
0 评论

C语言08 flash存储分配+程序运行内存分配

一、从stm32引入理解1、MDK编译log:Program Size: Code=72072 RO-data=6864 RW-data=1316 ZI-data=8684Code是存储程序代码的;(删掉代码中未使用的函数等以节省flash空间)RO-data 是存储const常量和已初始化的字符串等;(类比于文字常量区)RW-data 是存储可读写的初始化值不为0的全局变量和静态变量;(类比于其他平台的data段,数据保持在bin文件中)ZI-data是存储未初始化或...
原创
发布博客 2021.08.04 ·
305 阅读 ·
0 点赞 ·
0 评论

C语言09 static使用+全局变量和静态变量

1、关键字static有什么用途?1)设置变量的存储域2)限制变量的作用域3)限制函数的作用域1】静态局部变量:在函数体内,被声明为静态的变量在函数被调用过程中维持其值不变,其值在下次调用时仍维持上次的值。(不被释放,而且只要赋一次初始值,如果没有赋值的话会自动为0.) (存储方式-生存期的改变)2】静态全局变量:被声明为静态的全局变量可以被模块内所有函数访问,但不能被模块外其它函数访问。(限制作用域)3】静态函数:被声明为静态的函数只可被这一模块内的其它函数调用。(限制作用域)
原创
发布博客 2021.08.03 ·
265 阅读 ·
0 点赞 ·
0 评论

C语言07 预编译+define

一、理论1、什么是预编译,何时需要预编译?答: 预编译又叫预处理,指程序编译前的代码文本处理工作。主要指用#表示的预编译指令,有三种:编译器编译前拷贝#include包含的代码,#define宏定义的替换,条件编译等等。何时需要预编译?1)总是使用不经常改动的大型代码体。2)程序由多个模块组成,所有模块都使用一组标准的包含文件和相同的编译选项。在这种情况下,可以将所有包含文件预编译为一个预编译头。2、为什么标准头文件都有类似以下的结构?#ifndef __INCvx
原创
发布博客 2021.08.02 ·
109 阅读 ·
0 点赞 ·
0 评论

C语言06 const详解+const 和define的区别

1、C语言的关键字const的含义和用途。含义:const是只读的意思,被const修饰的东西都受到强制保护,只允许访问不允许被改变,可以预防意外的变动,能提高程序的健壮性。通过给编译器特定的附加信息,可以使编译器保护那些不希望被改变的参数,防止其被无意的代码修改。用途:(1)可以定义 const 常量。(2)可以修饰指针。(3)可以修饰函数的参数、返回值,甚至函数的定义体。2、const 用法:限定变量和指针(1)const int a;(2)int const .
原创
发布博客 2021.08.01 ·
67 阅读 ·
0 点赞 ·
1 评论

C语言05 联合体和大小端

大端模式,是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放;这和我们的阅读习惯一致。小端模式,是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中,这种存储模式将地址的高低和数据位权有效地结合起来,高地址部分权值高,低地址部分权值低。=== === ====== === ====== === ===1、请写一个C函数,若处理器是Big_endian的,则返...
原创
发布博客 2021.07.25 ·
65 阅读 ·
0 点赞 ·
0 评论

C语言04 volatile的使用

1、关键字volatile的含意? 一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。 优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。举例如下:1)并行设备的硬件寄存器(如:状态寄存器)。2).一个中断服务子程序中会访问到的非自动变量(可能被突然调用)。3).多线程应用中被几个任务共享的变量(使用互斥锁)。2、一个变量可以既是const还可以是volatile吗?...
原创
发布博客 2021.07.25 ·
19 阅读 ·
0 点赞 ·
0 评论

C语言03 位操作

1、置位和清零 嵌入式系统总是要对变量或寄存器进行位操作。给一个整型变量a,写两段代码,第一个设置a的bit 3,第二个清除a 的bit 3。在以上两个操作中,要保持其它位不变。#define BIT3 (0x1<<3)static int a;void set_bit3(void){ a |= BIT3;}void clear_bit3(void){ a &= ~BIT3;}2、移位和取值有一个16位的整数,...
原创
发布博客 2021.07.24 ·
84 阅读 ·
0 点赞 ·
0 评论

C语言02 自加自减 i++

1、自增运算符的右结合性。2、请写出下列代码的输出内容   #include <stdio.h>int main(void)   {    int a,b,c,d;  a=10;    b=a++;  c=++a;     d=10*a++;    printf("b,c,d:%d,%d,%d",b,c,d);    return 0;   }   10,12,1203、PC上VS运行结果:int j=1;cout<..
原创
发布博客 2021.07.23 ·
38 阅读 ·
0 点赞 ·
0 评论

C++ 03从简单程序引入2

//#define CLASS_STUDENT//#define CLASS_TIME1//#define CLASS_TIME2#define CLASS_TIME3#ifdef CLASS_TIME3#include <iostream>using namespace std;class Time{public: void set_time(); void show_time();private: int hour; int minute; int..
原创
发布博客 2021.05.04 ·
57 阅读 ·
0 点赞 ·
0 评论

C++ 02从简单程序引入1

//#define BASIC1_COUT#define BASIC1_CIN#ifdef BASIC1#include <iostream> //iostream代表输入输出流 //C的头文件要加.h后缀,C++的头文件可加可不加。using namespace std; //“使用命名空间std”。 //C++标准库中的类和函数是在std中声明的,程序如需要用到标准库(cout)要用此语句做声明。int main() //标准C++规定,..
原创
发布博客 2021.04.18 ·
44 阅读 ·
0 点赞 ·
0 评论

C++01简介

1、计算机工作由什么控制? 程序2、程序是什么? 指令的集合3、指令是什么? 计算机可以识别的命令4、编程语言是什么? 软件工程师用来编写程序的指令集5、机器语言是什么? 计算机硬件系统可以识别的二进制指令集组成的语言,01016、汇编语言是什么? 将机器指令映射为易懂的助记符,如ADD等。7、高级程序语言的特征? 屏蔽了机器的细节,提高语言的抽象层次。8、面向对象的语言的特点:对象-类-重用1]将客观事物看作具有属性和行为的对象;2]通过抽象找出同一类对象的共...
原创
发布博客 2021.04.18 ·
52 阅读 ·
0 点赞 ·
0 评论

ARM9 2440裸机驱动03 KEY轮询和中断两种方法+按键去抖动去重复+gpio红外去抖

==========摘要===========1、按键轮询:寄存器:rGPGCON; rGPGUP;rGPGDAT函数列表:key_init; key_poll;get_value;2、按键中断:(1)函数列表:key_init; key_irq; get_value;中断配置流程:=>按键本身gpio配置EINT mode(rGPGCON);=>EXTINT使能中断脚配置对应的gpio=>EINTMASK外部中断掩码寄存器配置对应的gpio=&
原创
发布博客 2021.03.07 ·
217 阅读 ·
0 点赞 ·
0 评论
加载更多