C++/C
文章平均质量分 79
wbainngg123
这个作者很懒,什么都没留下…
展开
-
数组赋值于双指针
int a[3] = {1,2,3};int *p = a;i = minimumTotal(&p,2);//正常形式int minimumTotal(int **triangle, int numRows){int i,j,k,mina,s,min=10000,n=numRows;int *f= (int *)malloc(numRows*sizeof(int));原创 2015-06-29 21:37:22 · 522 阅读 · 0 评论 -
可变参数原理
先来看看一个实现代码:#include #define va_list void*#define va_arg(arg, type) *(type*)arg; arg = (char*)arg + sizeof(type);#define va_start(arg, start) arg = (va_list)(((char*)&(start)) + sizeof(s转载 2015-08-31 11:21:25 · 469 阅读 · 0 评论 -
动态分配内存之new
动态分配内存之new 首先:为什么需要动态定义数组呢? 这是因为,很多情况下,在预编译过程阶段,数组的长度是不能预先知道的,必须在程序运行时动态的给出 但是问题是,c++要求定义数组时,必须明确给定数组的大小,要不然编译通不过 如: int Array[5];正确 int i=5; int Array[i]; 错误 因为转载 2015-08-31 17:53:30 · 737 阅读 · 0 评论 -
STL源码剖析---空间配置器
SGI STL考虑到小型内存区块的碎片问题,设计了双层级配置器,第一级配置直接使用malloc()和free();第二级配置器则视情况采用不同的策略,当配置区大于128bytes时,直接调用第一级配置器;当配置区块小于128bytes时,遍不借助第一级配置器,而使用一个memory pool来实现。究竟是使用第一级配置器还是第二级配置器,由一个宏定义来控制。SGI中默认使用第二级配置器。转载 2015-09-04 22:16:14 · 456 阅读 · 0 评论 -
C++中的单例模式
单例模式也称为单件模式、单子模式,可能是使用最广泛的设计模式。其意图是保证一个类仅有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块共享。有很多地方需要这样的功能模块,如系统的日志输出,GUI应用必须是单鼠标,MODEM的联接需要一条且只需要一条电话线,操作系统只能有一个窗口管理器,一台PC连一个键盘。 单例模式有许多种实现方法,在C++中,甚至可以直接用一个全局变转载 2015-09-08 11:51:35 · 402 阅读 · 0 评论 -
extern inline和static inline
extern inline表示该函数是已声明过的了.由于函数本身可以声明多次,所以extern对函数的影响仅仅把函数的隐藏属性显式化了. extern 对于非函数的对象是有用的,因为对象声明时会带来内存的分配,而用 extern就表示该对象已经声明过了,不用再分配内存. static是以前C的用法.目的是让该关键字标识的函数只在本地文件可见,同一个程序的其它文件是不可见该函数的.换句话说,转载 2015-12-04 13:25:27 · 472 阅读 · 0 评论 -
怎么学习阅读大型项目的代码
众所周知,要想写出好的程序,除了要经常写之外,还有看看别人是怎么写的,所以读别人的程序是非常重要的;如今是个信息交换十分发达的时代,你可以轻易的就看到顶尖级选手的代码;开源事业蒸蒸日上,确实是所有程序员的福音。但如何阅读别人的代码呢?尤其对于初学者而言,确实是个难题,就像碰到一漂亮的刺猬,实在不知道如何下嘴。 规则一,你读的越多,你就越容易读懂,因为高手写程序的思维都是趋同的,正所谓万剑归宗转载 2016-04-12 17:07:02 · 4629 阅读 · 1 评论 -
STM32 USB学习笔记
STM32 USB学习笔记 2011-08-06 17:38:01| 分类: 默认分类|举报|字号 订阅 下载LOFTER我的照片书 | STM32 USB学习笔记一、USB-FS-Device firmware libra转载 2016-04-21 20:54:51 · 1120 阅读 · 0 评论 -
回调函数的好处
对指针的应用是C语言编程的精髓所在,而回调函数就是C语言里面对函数指针的高级应用。简而言之,回调函数是一个通过函数指针调用的函数。如果你把函数指针(函数的入口地址)传递给另一个函数,当这个函数指针被用来调用它所指向的函数时,我们就说这个函数是回调函数。为什么要使用回调函数呢?我们先看一个小例子: 1 Node * Search_List (Node * node,转载 2016-07-12 11:28:32 · 931 阅读 · 0 评论 -
动态链接库创建步骤
建立DLL库步骤:1、根据网址http://blog.csdn.net/fightforprogrammer/article/details/38051181创建myDll项目myDll.cpp:#include "stdafx.h"BOOL APIENTRY DllMain(HMODULE hModule,DWORD ul_reason_for_call,LPVOID原创 2016-08-30 10:02:28 · 408 阅读 · 0 评论 -
调试LwIP攻略(keil版)
1、首先看看之前写的在keil中重定向printf输出到窗口打印信息,从而避免了连接串口打印到上位机才能观看调试信息;附上网址:http://blog.csdn.net/wbainngg123/article/details/518886862、LwIP需要打开debug.h在#ifdef LWIP_DEBUG一行上加上#define LWIP_DEBUG编译后会出错,即开启D原创 2016-09-02 11:22:35 · 7081 阅读 · 0 评论 -
c和c++相互调用
extern "C"的惯用法 (1)在C++中引用C语言中的函数和变量,在包含C语言头文件(假设为cExample.h)时,需进行下列处理: extern "C" { #include "cExample.h" } 而在C语言的头文件中,转载 2016-09-14 15:49:25 · 455 阅读 · 0 评论 -
静态库与动态库
对Windows下的动态库编程并不很熟悉。下午利用一点时间写了个原型,实现过程中想到许多问题,网上搜到许多文章,学到不少知识,但感觉比较杂乱,于是决定理一理,就有了这篇博文。一、 静态库与动态库库(library),一般是一种可执行的二进制格式,被操作系统载入内存执行。静态库:在链接的时候,链接器将目标文件(.obj)和用到的静态库一起打包到最后生成的可执行文件中。因此转载 2017-04-07 14:18:39 · 229 阅读 · 0 评论 -
c++面试宝
一、对象复制#include#includeusing namespace std;class A{public:A(){m_a = 1;m_b = 2;}~A(){};void fun(){printf("%d%d",m_a,m_b);}public:int m_a;int m_b;};class B{public:B(){m_c =原创 2015-07-14 14:36:18 · 549 阅读 · 0 评论 -
哈希表 hash_map 以及 map与hash_map的比较
C++ STL中哈希表 hash_map介绍这里列几个常见问题,应该对你理解和使用hash_map比较有帮助。4.1 hash_map 和 map的区别在哪里?构造函数。hash_map需要hash函数,等于函数;map只需要比较函数(小于函数).存储结构。hash_map采用hash表存储,map一般采用红黑树(RB Tree)实现。因此其memory数据结构是不转载 2015-08-28 11:52:27 · 565 阅读 · 0 评论 -
简单的背包程序
#include#include #define Max(a,b) ((a)>(b)?(a):(b))int main(){int i,j;int V = 12,N=5;int f[13]={0};int w[5]={3,4,5,7,3};int c[5]={2,4,5,7,3};//for(i=1;i// f[i] = -100;for(i=0;i原创 2015-07-01 16:26:04 · 505 阅读 · 0 评论 -
两个任意长度的字符正数相减
#include#include#include#includeusing namespace std;/***************************************************************************** Description : 两个任意长度的正数相减 Input Param : String原创 2015-07-01 22:17:34 · 1027 阅读 · 0 评论 -
一元多项式乘法字符运算(关联容器map)
一元多项式乘法运算和化简 编程实现如下功能:对两个输入的一元多项式,进行多项式乘法运算,输出结果一元多项式,要求结果中除单项式外不再含乘法,并经过化简(同类项合并,并按指数降序排序)。 说明: 1、多项式由若干个单项式组成,单项式之间为加、减(+,-)关系。2、单项式指数字与字母幂的乘积构成的代数式。对一元多项式,字母只有一种。3、多项式乘法原创 2015-07-02 20:15:05 · 519 阅读 · 0 评论 -
C语言 常用函数
#include求x的绝对值 double fabs(x) double x;计算x^y的值 double pow (x,y) double x,y计算根号x(x>=0)double sprt(x) double x;#include检查ch是否字母或数字int isalnum(ch) int ch;是字母或数字返回;否则返回0检查ch是否数字(0~9)int is转载 2015-07-04 10:50:44 · 403 阅读 · 0 评论 -
优先队列priority_queue 用法详解
优先队列priority_queue 用法详解优先队列是队列的一种,不过它可以按照自定义的一种方式(数据的优先级)来对队列中的数据进行动态的排序每次的push和pop操作,队列都会动态的调整,以达到我们预期的方式来存储。例如:我们常用的操作就是对数据排序,优先队列默认的是数据大的优先级高所以我们无论按照什么顺序push一堆数,最终在队列里总是top出最大的元素。用法:转载 2015-07-06 10:13:53 · 531 阅读 · 0 评论 -
const_cast<type_id> (expression)
const_cast (expression)该运算符用来修改类型的const或volatile属性。除了const 或volatile修饰之外, type_id和expression的类型是一样的。一、常量指针被转化成非常量的指针,并且仍然指向原来的对象;二、常量引用被转换成非常量的引用,并且仍然指向原来的对象;2案例编辑volatile和cons转载 2015-07-06 10:39:15 · 463 阅读 · 0 评论 -
C++类内存分布
C++类内存分布书上类继承相关章节到这里就结束了,这里不妨说下C++内存分布结构,我们来看看编译器是怎么处理类成员内存分布的,特别是在继承、虚函数存在的情况下。工欲善其事,必先利其器,我们先用好Visual Studio工具,像下面这样一步一步来: 先选择左侧的C/C++->命令行,然后在其他选项这里写上/d1 reportAllClassLayout转载 2015-07-14 15:14:10 · 418 阅读 · 0 评论 -
STL中map、set的数据结构及底层实现
摘要:本文列出几个基本的STL map和STL set的问题,通过解答这些问题讲解了STL关联容器内部的数据结构,最后提出了关于UNIX/LINUX自带平衡二叉树库函数和map, set选择问题,并分析了map, set的优势之处。对于希望深入学习STL和希望了解STL map等关联容器底层数据结构的朋友来说,有一定的参考价值。STL map和set的使用虽不复杂,但也有一些不易理转载 2015-08-22 10:54:47 · 567 阅读 · 0 评论 -
C语言qsort C++的sort
C++:要使用此函数只需用#include sort即可使用,默认是升序;语法描述为:sort(begin,end),表示一个范围,例如:int _tmain(int argc, _TCHAR* argv[]){ int a[20]={2,4,1,23,5,76,0,43,24,65},i; for(i=0;i cout sort(a,a+20);转载 2015-07-03 21:03:52 · 511 阅读 · 0 评论 -
C++容器
map和multimaps: 1、头文件都是#include,并且都按关键字递增排序2、迭代器map::iterator iter; iter->first =>key;iter->second =>elem;这里迭代器要用"->"3、对于multimap.find(key)查找第一个key键,并且返回其迭代器;e而删除erase(key)则会删除所有的key键;4、不能通过原创 2015-07-17 21:24:26 · 453 阅读 · 0 评论 -
复制控制----句柄类与继承
C/C++拾遗(十七):面向对象补充——复制控制 昨天粗略地看了《面向对象编程》这一章,简单地梳理了一下自己感觉重要的几个知识点,今天就昨天没有来得及仔细看的部分做些补充,主题是涉及类继承的复制控制以及类作用域的讨论。一、构造函数与复制控制 我们知道对于一个类而言,构造函数、复制构造函数、赋值运算符与析构函数是必需的部分,换句话说,如果我们没有显式定转载 2015-07-19 10:36:34 · 542 阅读 · 0 评论 -
类模板Template
一、类模板定义及实例化1. 定义一个类模板:View Code1 templateclass 模板参数表>2 3 class 类名{4 5 // 类定义......6 7 }; 其中,template 是声明类模板的关键字,表示声明一个模板,模板参数可以是一个,也可以是多个,可以是类型参数 ,也可以是非类型参数。类型参数由关键字class转载 2015-08-28 11:03:01 · 560 阅读 · 0 评论 -
嵌入式设计模式:有限状态自动机的C语言实现
原文: http://www.cnblogs.com/autosar/archive/2012/06/22/2558604.html状态机模式是一种行为模式,在《设计模式》这本书中对其有详细的描述,通过多态实现不同状态的调转行为的确是一种很好的方法,只可惜在嵌入式环境下,有时只能写纯C代码,并且还需要考虑代码的重入和多任务请求跳转等情形,因此实现起来着实需要一番考虑。近日在看了转载 2017-10-11 09:13:53 · 441 阅读 · 1 评论