- 博客(31)
- 收藏
- 关注
转载 循环冗余校验(CRC)算法入门引导
转自http://blog.csdn.net/liyuanbhu/article/details/7882789
2014-04-09 10:53:40 869 1
转载 VC项目配置基础 (VC6.0 和VC2005)
一.预处理宏1. 通用宏VC6.0 中:Project Setting à C/C++ à Preprocessor definitionsVC2005 中:项目属性 à 配置属性 à C/C++ à 预处理器定义 WIN32 :指明是 Window 32 位系统的编译器,一般用作平台识别。_MBCS/_UNICODE :指明该工
2013-11-01 22:36:39 772
转载 C/C++中extern关键字详解
1 基本解释:extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。此外extern也可用来进行链接指定。 也就是说extern有两个作用,第一个,当它与"C"一起连用时,如: extern "C" void fun(int a, int b);则告诉编译器在编译fun这个函数名时按着C的规则去翻译相应的函数
2013-10-25 21:36:05 463
转载 fatal error C1010: unexpected end of file while looking for precompiled header directive
在编译VC++6.0是,出现fatal error C1010: unexpected end of file while looking for precompiled header directive的错误.解决方法:1、如果发生错误的文件是由其他的C代码文件添加进入当前工程而引起的,则Alt+F7进入当前工程的 Settings,选择C/C++选项卡,从Category组合框
2013-10-24 16:24:02 715
转载 静态 类数据成员、const与类
每个对象的数据成员都是独立的,在内存中各自独立,但是对象的成员函数的创建和放置在内存中只有一个地方。一、静态类数据成员:前面说过每个对象包含它自己独立的数据,但是当数据项被声明为static后,不管存在多少对象,整个类只会创建一个这样的数据项。静态类数据成员与普通静态变量相同点:只在类中可见,但是生存周期与整个程序相同。即使没有了类的对象,他依然存在。不同点:普通的静态变量被用
2013-10-23 21:16:17 559
转载 IDE、SCSI、SATA
IDE IDE的英文全称为“Integrated Drive Electronics”,即“电子集成驱动器”,它的本意是指把“硬盘控制器”与“盘体”集成在一起的硬盘驱动器 。把盘体与控制器集成在一起的做法减少了硬盘接口的电缆数目与长度,数据传输的可靠性得到了增强,硬盘制造 起来变得更容易,因为硬盘生产厂商不需要再担心自己的硬盘是否与其它厂商生产的控制器兼容 。对
2013-10-21 10:58:48 688
转载 COM
一. 什么是COM?你怎么理解COM?Components Object Model(COM)是软件组件互相通信的一种方式。它是一种二进制和网络标准,允许任意两个组件互相通讯,而不管它们是在什么计算机上运行(只要计算机是相连的),不管各计算机运行的是什么操作系统(只要该系统支持 COM),也不管该组件是用什么语言编写的。COM 还提供了位置透明性:当您编写组件时,其他组件是进程内 DLL
2013-09-21 20:38:17 3384
原创 关于main函数的(int_argc,char_argv[])
main(int argc,char *argv[ ])argv是一个指针数组,为指针的指针,argv[i]为一个指针,指向char型数argc为int,整型数char **argv or: char *argv[] or: char argv[][]main()括号内是固定的写法。下面给出一个例子来理解这两个参数的用法:假设程序的名称为prog,当只输入pro
2013-09-10 17:18:36 699
转载 usb---端点
一个端点是一个可唯一识别的USB设备的Portion,它是主机与设备间通信流的一个结束点。一系列相互独立的端点在一起构成了USB逻辑设备。每个逻辑设备有一个唯一的地址,这个地址是在设备连上主机时,由主机分配的,而设备中的每个端点在设备内部有唯一的端点号。这个端点号是在设备设计时被给定的。每个端点都是一个简单的连接点,或者支持数据流进设备,或者支持其流出设备,两者不可得兼。
2013-07-24 21:15:59 1356
转载 C++中二进制、八进制、十六进制表示方法
一、(八进制表示,并十进制输出)std::cout 二、(十六进制表示,并十进制输出)std::cout 三、 由于不能采用采用C++直接表示二进制,所以采用bitset表示二进制方法一:#include#includeint main(){ int c=5; std::bitset a(c); std::cout return 0;}
2013-07-17 10:33:53 883
原创 C陷阱与缺陷(C Traps and Pitfalls)--学习笔记--第一章:词法陷阱
术语“符号”(token)指的是程序的一个基本组成单元,其作用相当于一个句子中的单词。符号由字符序列组成,单个字符需要结合上下文才知道它的意义。如符号'-'在p->s = “->”中,就有两个意思,第一个是符号->的组成部分,第二个是字符串"->"的组成部分。编译器中负责将程序分解为一个一个符号的,一般称为“词法分析器”。如下例:if (x > big) big = x;这个语句的第一个符
2013-06-25 16:45:53 720
转载 用宏区分操作系统和编译器
编码的时候经常要用到条件编译,每次都到网上去查比较浪费时间,今天总结一下以备后用 编译器 GCC#ifdef __GNUC__#if __GNUC__ >= 3 // GCC3.0以上 Visual C++#ifdef _MSC_VER(非VC编译器很多地方也有定义)#if _MSC_VER >=1000 // VC++4.0以上 #if _MSC_
2013-06-24 14:47:46 1086
转载 32位和64位系统区别及int字节数
一)64位系统和32位有什么区别? 1、64bit CPU拥有更大的寻址能力,最大支持到16GB内存,而32bit只支持4G内存 2、64位CPU一次可提取64位数据,比32位提高了一倍,理论上性能会提升1倍。但这是建立在64bit操作系统,64bit软件的基础上的。 什么是64位处理器? 之所以叫做“64位处理器”,是因为电脑内部都是实行2进制运算,处理器(CPU)一次处理数
2013-06-24 14:40:31 784 1
原创 #pragma once与#ifndef的区别
为了避免同一个文件被include多次有如下两种方式:1 ) #ifndef __SOMEFILE_H__ #define __SOMEFILE_H__ code…… // 一些声明语句 #endif 2 ) #pragma once code…… //
2013-05-29 10:35:36 460
转载 Statistical Formulas For Programmers
By Evan MillerDRAFT: May 19, 2013Being able to apply statistics is like having a secret superpower.Where most people see averages, you see confidence intervals.When someone says “7 is greater
2013-05-23 22:13:14 660
原创 函数声明后面的const是什么意思
例如有这样一个函数int getValue(Elem &it) const { ... }加const 和不加 const 有什么区别呢? 这是用在类成员函数的声明和定义中,常成员函数使用const关键字说明的函数,表示函数可以对const对象进行操作,但是不能改变数据成员的内容.为了安全 保护数据不被无意的破坏.在类的成员函数之后加上 const 以后,所有想通过调用这个
2013-05-23 21:56:51 963
原创 #if _MSC_VER > 1000 的含义
_MSC_VER 是什么意思? 这是微软的预编译控制。 在_MSC_VER较小时,它对一些东西的支持与新版不同_MSC_VER分解如下:MS:Microsoft(微软)的简写C:MSC就是Microsoft出的C编译器。VER:Version(版本)的简写。全部加在一起就是:Microsoft的C编译器的版本#if _MSC_VER > 1000 //如
2013-05-21 19:22:32 4007
原创 C++中赋值语句的执行顺序
(1)C++的赋值语句具有其他高级语言的赋值语句的功能。但不同的是: C++中的赋值号“=”是一个运算符,可以写成 a=b=c=d;而在其他大多数语言中赋值号不是运算符,上面的写法是不合法的。(2) 关于赋值表达式与赋值语句的概念。在C++中,赋值表达式可以包括在其他表达式之中,例如 if((a=b)>0) cout0"按语法规定if后面的( )内是一个条件。现
2013-05-08 14:07:06 4913
原创 冒泡法排序与选择法排序:代码及分析
冒泡法:冒泡法也叫气泡法排序,它通过将相邻元素进行比较和交换,以从小到大排序为例,将小的调到前头,若有n个数,第一次比较将第1个和第2个数的大小,如果arr[0]>arr[1],就把两个数位置交换;第二次比较第2个数和第3个数的大小……,如此比较(n-1)次,就将最大的数沉到底部,成为arr[n-1],即数组最后一个元素,此过程中会伴随着小的数的“上升”。整个数组排序共经过(n-1)轮后,就将n个
2013-04-27 22:19:41 748
原创 在C++中如何定义一个行数和列数比较大的矩阵
在C++中,定义一个行数和列数为常量的矩阵很简单,例如:double A[10][15];当这条语句在一对{ }之间时,为在函数内部定义的常规变量,它使用自动存储空间,被称为自动变量,这意味着他们在所属的函数被调用时自动产生,在函数结束时消亡,其作用域为包含它的代码块,通常存储在栈中,遵循后进先出的顺序。然而在下面两种情况下,这样定义是不行的。 其一,如果矩阵的尺寸较大,例如,A是40
2013-04-23 19:40:48 2833
转载 理解计算机3D图形学中的坐标系变换
要谈坐标系变换,那么坐标系有哪些呢?依次有:物体坐标系,世界坐标系,相机坐标系,投影坐标系以及屏幕坐标系.我要讨论的就是这些坐标系间的转换。 这些坐标系不是凭空而来,他们都是为了完成计算机3D图形学最最最基本的目标而出现. 计算机3D图形学最最最基本的目标就是:将构建好的3D物体显示在2D屏幕坐标上. 初看好像就是将最初的物体坐标系转换到屏幕坐标系就可以了呀
2013-04-21 19:03:35 1027
原创 问题:指针为什么使用前要进行初始化及相关例子
很多函数虽然是以指针为参数,但是空间是需要用户分配的。未经过初始化的指针或者已被delete掉的指针,叫做野指针。不初始化也能通过编译器,但指针指向哪里,你根本不知道,如果指向的是内存中比较重要的地方,可能会导致系统异常,如有时电脑会提示指向了一个不可用的地址之类的错误。定义一个指针的时候,可以在声明语句中初始化指针,此时被初始化的是指针,而不是它指向的值。由于有宏定义 #de
2013-04-21 15:54:25 2204
转载 MathType的灵活运用
MathType的灵活运用http://blog.sina.com.cn/s/blog_64367bb90100ml0m.html
2013-04-12 19:41:13 561
转载 如何高效利用GitHub
正是Github,让社会化编程成为现实。本文尝试谈谈GitHub的文化、技巧与影响。Q1:GitHub是什么 Q2:GitHub风格 Q3: 在GitHub,如何跟牛人学习Q4: 享受纯粹的写作与演讲 Q5: 代码帮你找工作 Q6: GitHub还在影响一些什么Q7: 除了GitHub,还可以选择什么?Q1:GitHub是什么A1:一家公司位于旧金山,由Ch
2013-03-28 08:16:39 554
原创 Ubuntu/Windows双系统安装
本篇是第一次原创,以前总觉得自己不是科班出身,羞于展示自己的水平,现觉得这种思想会限制自己在编程之路上的进步,所以决定分享。首先说下本人的身份,本科名为测控技术与仪器,除了公共课专业课就是研究如何通过各类传感器测量各种待测量,考试能力不错得以保研本校继续研究生。本来是件幸事,错在本人热衷于权威,得知本院精密仪器及机械是一级博士学科,就报了这个,实则搞的是三坐标测量机整个控制程序的编写。专业名字只是
2013-03-27 09:56:24 675
转载 C/C++编译过程
A 一直对这块内容都很怵头,因为它看不到摸不着,我们只能盯着最后编译链接之后的结果是成功或是失败,但是却不知道编译器内部是如何操作的;B 每当编译器给出错误时我们都只是单纯的去处理错误,却不知道编译器是如何找出来的;C 我们都很熟悉许多编译错误,但是却不大熟悉链接错误,对链接错误产生的原因也不大清楚。 今天,通过自己的努力终于对C/C++的编译
2013-01-08 14:26:26 307
转载 关于Windows下定时器的使用
在VC中,我写了不少应用级的软件,多数基于MFC来写代码。关于定时器的使用,在编码过程中,也会经常用到,现就常用的定时器作个比较,以方便大家使用。常见的定时器有如下几种:CTimer、timeSetEvent和Socket通讯中的select一、CTimerCTimer的使用在MFC中最为常见,在基于CWnd的类中用起来简单、方便,缺点是必须要有窗口,可见的或不可见都可以。使用方法
2013-01-08 14:24:30 514
转载 串口通讯--同步通讯方式
串口通讯 — 同步通信方式 1. 同步通信方式的特点:采用同步通信时,将许多字符组成一个信息组,这样,字符可以一个接一个地传输,但是,在每组信息(通常称为帧)的开始要加上同步字符,在没有信息要传输时,要填上空字符,因为同步传输不允许有间隙。在同步传输过程中,一个字符可以对应5 ~8 位。当然,对同一个传输过程,所有字符对应同样的数位,比如说n 位。这样,传输时,按每n 位划分为
2013-01-06 18:02:09 526
转载 指针数组&数组指针
数组指针(也称行指针)定义 int (*p)[n];()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长。也就是说执行p+1时,p要跨过n个整型数据的长度。如要将二维数组赋给一指针,应这样赋值:int a[3][4];int (*p)[4]; //该语句是定义一个数组指针,指向含4个元素的一维数组。p=a; //将该二维数组的首地址赋给p,也就是a
2013-01-06 13:32:56 280
转载 堆 栈的区别
堆和栈的区别一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3、全局区(静态
2013-01-06 13:32:02 349
转载 c++ 虚函数的实现机制
2012-12-28 10:20 17人阅读 评论(0)收藏 举报1、c++实现多态的方法其实很多人都知道,虚函数在c++中的实现机制就是用虚表和虚指针,但是具体是怎样的呢?从more effecive c++其中一篇文章里面可以知道:是每个类用了一个虚表,每个类的对象用了一个虚指针。具体的用法如下:class A{public: virtual vo
2013-01-06 12:31:41 350
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人