C/C++
StefanSalvatore
不忘初心
展开
-
Visual Studio2008 和2010 运行程序出现的黑框立即消失解决方法
1、在程序最后加 system("PAUSE"); 要注意包含头文件#include"stdlib.h" //system需要调用这个2、程序末尾加函数getchar(); getchar()是等待用户输入字符的函数,如果程序没有getchar()函数,那么程序运行完就自动结束了,末尾加入了getchar()就需要用户手动 输入字符以结束转载 2016-06-11 14:30:15 · 3331 阅读 · 0 评论 -
C++---从函数返回指针
C++ 不支持在函数外返回局部变量的地址,除非定义局部变量为 static 变量。#include #include #include using namespace std; // 要生成和返回随机数的函数int * getRandom( ){ static int r[10]; // 设置种子 srand( (unsigned)time( NULL ) );转载 2017-02-27 16:21:48 · 812 阅读 · 0 评论 -
C--显示十六进制数字
#includeint main(){ char s[]="25"; printf("%x%x\n", 0XFF&s[1], 0XFF&s[0]); return 0;}原创 2017-04-01 10:06:07 · 2470 阅读 · 0 评论 -
使用OpenCV时的小技巧
1、 图像的遍历OpenCV图像遍历最高效的方法是指针遍历方法。因为图像在OpenCV里的存储机制问题,行与行之间可能有空白单元(一般是补够4的倍数或8的倍数,有些地方也称作“位对齐”,目前我用到的FreeImage和c#中的bitmap中的存储机制也是这样的)。这些空白单元对图像来说是没有意思的,只是为了在某些架构上能够更有效率,比如intel MMX可以更有效的处理那种个数是4或8倍转载 2017-03-15 09:36:06 · 449 阅读 · 0 评论 -
C--学习笔记1
1、编写程序命名时,一般下划线开头的东西是编译器和标准库内部使用的名字,标准库用一个下划线,编译器内部用两个下划线。2、一般只有已经广泛使用的系统库函数和宏才有资格使用_甚至__打头,为的是不与用户定义的名字冲突,所以B.Stoustup在《The C++ Programming Language》中告诫我们一般不要使用_或者__。3、原创 2017-04-01 17:12:27 · 502 阅读 · 0 评论 -
C++--笔记2
13. 构造函数:(1)构造函数名字与类名相同;(2)构造函数不指定返回类型,它隐含有返回值,由系统内部使用;(3)构造函数可以有一个或多个参数,因此可以重载;(4)在创建对象时,系统会自动调用构造函数。14. 在构造函数中,初始化列表中各个初始化项的执行顺序取决于类成员在类中声明的顺序,而与初始化列表中给出的初始化顺序无关。15. 析构函数:(1)析构函数名是在原创 2017-03-18 15:05:28 · 460 阅读 · 0 评论 -
《程序员面试宝典3》大量错误(50+)纠正表
《程序员面试宝典》第3版大量错误纠正表 以前随手翻了翻,想写这篇文章没有写,现在完整看了下就记录下来了。找工作的同学大部分都会看《程序员面试宝典》,本来看过去就可以了。但我还是要把自己记录的大量错误指出来,以免误人子弟。这本书错误漏洞百出,编辑质量太差。虽然它一版再版,一再流传,却没有一个勘误表,错误改了很多,还有很多依然存在。 因此提醒读者一定要自己动转载 2017-05-23 14:30:13 · 475 阅读 · 0 评论 -
C++---笔记1
1、 构造函数,使用初始化列表来初始化字段:Line::Line( double len): length(len){ cout << "Object is being created, length = " << len << endl;}上面的语句等同于如下语法:Line::Line( double len){ cout << "Object is being原创 2017-02-27 21:17:58 · 717 阅读 · 0 评论 -
C++拷贝构造函数详解
一. 什么是拷贝构造函数首先对于普通类型的对象来说,它们之间的复制是很简单的,例如:[c-sharp] view plain copyint a = 100; int b = a; 而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。下面看一个类对象拷贝的简单例子。[c-转载 2017-06-27 09:52:59 · 363 阅读 · 0 评论 -
C函数之memcpy()函数用法
函数原型void *memcpy(void*dest, const void *src, size_t n);功能由src指向地址为起始地址的连续n个字节的数据复制到以destin指向地址为起始地址的空间内。头文件#include返回值 函数返回一个指向dest的指针。说明 1.sour转载 2017-08-14 15:25:52 · 1103 阅读 · 0 评论 -
#ifdef #else #endif 的用法
预处理就是在进行编译的第一遍词法扫描和语法分析之前所作的工作。说白了,就是对源文件进行编译前,先对预处理部分进行处理,然后对处理后的代码进行编译。这样做的好处是,经过处理后的代码,将会变的很精短。 关于预处理命令中的文件包含(#include),宏定义(#define),书上已经有了详细的说明,在这里就不详述了。这里主要是对条件编译(#ifdef,#else,#endif,#if等)进行说转载 2017-03-08 10:33:33 · 1122 阅读 · 0 评论 -
c++ 之类的前置声明
转自:http://blog.csdn.net/fjb2080/archive/2010/04/27/5533514.aspx 作者:清林,博客名:飞空静渡刚开始学习c++的人都会遇到这样的问题:定义一个类 class A,这个类里面使用了类B的对象b,然后定义了一个类B,里面也包含了一个类A的对象a,就成了这样: //a.h #include转载 2017-02-23 14:43:23 · 490 阅读 · 0 评论 -
多线程编程笔记
1. 网址:http://www.ibm.com/developerworks/cn/linux/thread/posix_thread1/原创 2017-03-02 15:47:40 · 332 阅读 · 0 评论 -
C++学习重点分析
一、#include “filename.h”和#include 的区别#include “filename.h”是指编译器将从当前工作目录上开始查找此文件#include 是指编译器将从标准库目录中开始查找此文件 二、头文件的作用加强安全检测通过头文件可能方便地调用库功能,而不必关心其实现方式 三、* , &修饰符的位置对于转载 2016-08-03 20:50:01 · 575 阅读 · 0 评论 -
matlab调用C/C++程序,用mex
如果我有一个用C语言写的函数,实现了一个功能,如一个简单的函数:double add(double x, double y){return x + y;} 现在我想要在Matlab中使用它,比如输入: >> a = add(1.1, 2.2) 3.3000要得出以上的结果,那应该怎样做呢?解决方法之一是要通过使用ME转载 2016-08-01 20:59:46 · 899 阅读 · 0 评论 -
多线程编程1
一、问题的提出编写一个耗时的单线程程序: 新建一个基于对话框的应用程序SingleThread,在主对话框IDD_SINGLETHREAD_DIALOG添加一个按钮,ID为IDC_SLEEP_SIX_SECOND,标题为“延时6秒”,添加按钮的响应函数,代码如下:void CSingleThreadDlg::OnSleepSixSecond() { Sleep(6000)转载 2016-09-11 01:44:07 · 364 阅读 · 0 评论 -
多线程编程2
五、MFC对多线程编程的支持 MFC中有两类线程,分别称之为工作者线程和用户界面线程。二者的主要区别在于工作者线程没有消息循环,而用户界面线程有自己的消息队列和消息循环。 工作者线程没有消息机制,通常用来执行后台计算和维护任务,如冗长的计算过程,打印机的后台打印等。用户界面线程一般用于处理独立于其他线程执行之外的用户输入,响应用户及系统所产生的事件和消息等。但对于Win32的API转载 2016-09-11 01:46:02 · 260 阅读 · 0 评论 -
多线程编程3
七、线程间通讯 一般而言,应用程序中的一个次要线程总是为主线程执行特定的任务,这样,主线程和次要线程间必定有一个信息传递的渠道,也就是主线程和次要线程间要进行通信。这种线程间的通信不但是难以避免的,而且在多线程编程中也是复杂和频繁的,下面将进行说明。使用全局变量进行通信由于属于同一个进程的各个线程共享操作系统分配该进程的资源,故解决线程间通信最简单的一种方法是使用全局变量转载 2016-09-11 01:47:04 · 228 阅读 · 0 评论 -
多线程编程4
八、线程的同步 虽然多线程能给我们带来好处,但是也有不少问题需要解决。例如,对于像磁盘驱动器这样独占性系统资源,由于线程可以执行进程的任何代码段,且线程的运行是由系统调度自动完成的,具有一定的不确定性,因此就有可能出现两个线程同时对磁盘驱动器进行操作,从而出现操作错误;又例如,对于银行系统的计算机来说,可能使用一个线程来更新其用户数据库,而用另外一个线程来读取数据库以响应储户的需要,极有转载 2016-09-11 01:48:32 · 218 阅读 · 0 评论 -
关于使用opencv的提速(二)(多线程问题,openMP)
主要参照的是:http://www.cnblogs.com/yangyangcv/archive/2012/03/23/2413335.html?ADUIN=745066753&ADSESSION=1396342401&ADTAG=CLIENT.QQ.5311_.0&ADPUBNO=26327基本操作就是在要循环的代码前加上#pragma omp parallel fo转载 2016-09-04 17:07:07 · 1541 阅读 · 0 评论 -
C++学习笔记1(Windows程序运行原理及程序编写流程)
窗口产生过程,句柄原理,消息队列,回调函数,窗口关闭与应用程序退出的工作关系,使用VC++的若干小技巧,stdcall与Lessonecl调用规范的比较,初学者常犯错误及注意事项。以下是应用程序与操作系统之间的关系。1.Windows API与Win32 SDK操作系统提供了各种方便开发Windows应用程序的编程接口,所的函数都在Windows.h头文件中声明。Win32转载 2016-09-22 22:54:23 · 2425 阅读 · 1 评论 -
sleep()、Sleep()、usleep()、delay()
1. linux下sleep函数原型为: unsigned int sleep(unsigned int seconds);使用gcc的库,sleep()函数是以秒为单位的,sleep(1);就是休眠1秒。需要包含头文件:#include nistd.h>2. 而MFC中的Sleep函数原型为: void原创 2017-03-02 15:29:21 · 1529 阅读 · 0 评论