自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 函数查找一个整数数组中第二大的数

#include using namespace std;const int MINNUMBER = -32767;int find_set_max(int data[], int count){    int maxnumber = data[0];    int sec_max = MINNUMBER;    for (int i = 1; i     { 

2015-05-28 14:30:57 560

原创 sizeof 数据对齐问题

总结:(1)当最高位为char型数据时,组合成char型数据,此时sizeof为1的整数倍。(2)当最高位为short型数据时,组合成short型数据,此时sizeof为2的整数倍。(3)当出现数据位最高为整型数据,也即32位数据,可以把其中的不够32位的同一种数据组合起来成32位,不同数据不能组合在一起,sizeof为4的整数倍(4)当出现数据位最高为double数据,也即64位数据,可以把其中的不够32位的同一种数据组合起来成32位,同时可以把不同种数据组合成64位,ziseof为8的整数倍(5

2015-05-28 10:43:44 465

转载 函数参数的传递问题(指针的指针)

函数参数的传递问题(指针的指针) 程序1:void myMalloc(char *s) //我想在函数中分配内存,再返回{  s=(char *) malloc(100);}void main(){  char *p=NULL;  myMalloc(p); //这里的p实际还是NULL,p的值没有改变,为什么?  if(p) free(p);

2015-05-27 10:02:48 432

原创 函数指针与函数指针数组的定义与使用

函数指针与函数指针数组的定义与使用函数指针:指向函数的指针定义方法为double add(double a,double b);double sub(double a,double b);double mul(double a,double b);double div1(double a,double b);double (*Func)(double,d

2015-05-27 09:43:22 376

原创 关键字volatile有什么含义?并给出三个不同的例子

一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了.精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份.下面是volatile变量的几个例子:  1).并行设备的硬件寄存器(如:状态寄存器)  2).一个中断服务子程序中会访问到的非自动变量(Non-automatic variabl

2015-05-27 09:28:47 1047

原创 c语言中const关键字详解

1、什么是const? 常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被更新的。(当然,我们可以偷梁换柱进行更新:) 2、为什么引入const? const 推出的初始目的,正是为了取代预编译指令,消除它的缺点,同时继承它的优点。 3、cons有什么主要的作用? (1)可以定义const常量,具有不可变性。 例如: const int M

2015-05-26 19:27:21 409

原创 字符数组与字符指针

1.字符指针可以指向一个字符串。我们可以用字符串常量对字符指针进行初始化。例如,有说明语句:char *str = "This is a string.";//字符串在常量区是对字符指针进行初始化。此时,字符指针指向的是一个字符串常量的首地址,即指向字符串的首地址。这里要注意字符指针与字符数组之间的区别。例如,有说明语句:char string[ ]="This is a st

2015-05-26 14:43:43 427

转载 C++预编译

C++提供的编译预处理功能主要有以下三种:  (一) 宏定义  (二) 文件包含  (三) 条件编译预处理过程扫描源代码,对其进行初步的转换,产生新的源代码提供给编译器。可见预处理过程先于编译器对源代码进行处理。在C语言中,并没有任何内在的机制来完成如下一些功能:在编译时包含其他源文件、定义宏、根据条件决定编译时是否包含某些代码。要完成这些工作,就需要使用预处理

2015-05-26 09:43:13 380

原创 C++中的类模板Template

多个类有着共同操作,但是数据类型不同。如下的3个类,getMax的功能是相同的,即求两个数中的最大值,仅仅是数据类型不同。 Cpp代码  class Compare_int  {      private:          int x,y;      public:          Compare(int a,int b)      

2015-05-25 14:08:33 398

原创 虚表/虚指针

虚函数在c++中的实现机制就是用虚表和虚指针,但是具体是怎样的呢?从more effecive c++其中一篇文章里面可以知道:是每个类用了一个虚表,每个类的对象用了一个虚指针。具体的用法如下:class A{public:virtual void f();virtual void g();private:int a};class B : public 

2015-05-25 09:36:22 350

转载 深入探讨C++中的引用

引用是C++引入的新语言特性,是C++常用的一个重要内容之一,正确、灵活地使用引用,可以使程序简洁、高效。我在工作中发现,许多人使用它仅仅是想当 然,在某些微妙的场合,很容易出错,究其原由,大多因为没有搞清本源。故在本篇中我将对引用进行详细讨论,希望对大家更好地理解和使用引用起到抛砖引玉的 作用。  一、引用简介  引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完

2015-05-21 17:11:15 261

转载 关于USART接收中断的BUG和注意事项

今天在使用USART模块,遇到了一些问题并解决了,于是发贴共享。问题描述:在使用USART做串口通讯时,我只把接收中断打开,并设置抢占优先级为最低一个级别,而接收中断上一个优先级处理事情比较多,可能占用了2ms时间。当我使用9600波特率往下位机发送数据,速度非常快,就是一直按回车发!问题就出来,不到1分钟时间,通讯没有反应了。USART配置代码如下:void uart_confi

2015-05-13 15:29:55 1326

原创 STM32通用定时器原理

一 STM32通用定时器原理            通用定时器 是一个通过可编程预分频器驱动的16位自动装载计数器构成。它适用于多种场合,包括测量输入信号的脉冲长度(输入捕获)或者产生输出波形(输出比较和PWM)。                        STM32 系列的CPU,有多达8个定时器,其中TIM1和TIM8是能够产生三对PWM互补输出的高级定时器,常用于三相电机的驱动,

2015-05-12 21:08:23 5173

原创 STM32 IO模式

一、总结在STM32中选用IO模式       1、浮空输入GPIO_IN_FLOATING ——浮空输入,可以做KEY识别,RX1       2、带上拉输入GPIO_IPU——IO内部上拉电阻输入       3、带下拉输入GPIO_IPD—— IO内部下拉电阻输入       4、模拟输入GPIO_AIN ——应用ADC模拟输入,或者低功耗下省电       5、开漏输出

2015-05-12 18:35:37 563

原创 STM32 NVIC 中断优先级管理

CM3 内核支持 256 个中断,其中包含了 16 个内核中断和 240 个外部中断,并且具有 256级的可编程中断设置。但 STM32 并没有使用 CM3 内核的全部东西,而是只用了它的一部分。STM32 有 84 个中断,包括 16 个内核中断和 68 个可屏蔽中断,具有 16 级可编程的中断优先级。而我们常用的就是这 68 个可屏蔽中断,但是 STM32 的 68 个可屏蔽中断,在 STM3

2015-05-12 16:11:30 617

原创 栈,堆分区

在C\C++中,通常可以把内存理解为4个分区:栈、堆、全局/静态存储区和常量存储区。下面我们分别简单地介绍一下各自的特点。一.   区域划分堆: 是大家共有的空间,分全局堆和局部堆。全局堆就是所有没有分配的空间,局部堆就是用户分配的空间。堆在操作系统对进程初始化的时候分配,运行过程中也可以向系统要额外的堆,但是记得用完了要还给操作系统,要不然就是内存泄漏。栈:是个线程独有的,保存其

2015-05-11 22:16:24 521

原创 C++ STL中迭代器介绍

迭代器迭代器提供对一个容器中的对象的访问方法,并且定义了容器中对象的范围。迭代器就如同一个指针。事实上,C++的指针也是一种迭代器。但是,迭代器不仅仅是指针,因此你不能认为他们一定具有地址值。例如,一个数组索引,也可以认为是一种迭代器。迭代器有各种不同的创建方法。程序可能把迭代器作为一个变量创建。一个STL容器类可能为了使用一个特定类型的数据而创建一个迭代器。作为指针,必须能够使用*操作符

2015-05-11 21:20:25 337

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除