- 博客(72)
- 收藏
- 关注

原创 免费赠与c/c++海量视频 学习资料的
如果有需要c/c++海量视频 学习资料的可以试试以下方法(和朋友自己业余搞的公众号,目前处于推广时期):微信关注 “金喜鹊论文发表” 账号,公众号中也有c/c++视频 ,大家也可以 输入 程序 或者 资料, 即可获取 海量的c/c++资料。关注后,输入 2013 , 之后就会回复 visual studio 2
2015-11-18 23:15:52
540

原创 免费获取 visual studio 2013正版安装软件
如果有需要visual studio 2013安装软件的可以试试以下方法(和朋友自己业余搞的公众号,目前处于推广时期):微信关注 “金喜鹊论文发表” 账号,关注后,输入 2013 , 之后就会回复 visual studio 2013 安装软件的百度云链接和密码。公众号中也有c/c++视频 ,大家也可以 输入 程序 或者 资料, 即可获取 海量的c/c++资
2015-11-18 23:13:33
1229
转载 关于Linux下.so的介绍和编写过程
Linux下的.so是基于Linux下的动态链接,其功能和作用类似与windows下.dll文件。 下面是关于.so的介绍: 一、引言通常情况下,对函数库的链接是放在编译时期(compile time)完成的。所有相关的对象文件(object file)与牵涉到的函数库(library)被链接合成一个可执行文件(executable file)。程序在运行时,与函数库再无
2016-07-25 15:55:42
1446
原创 局部字符串指针 局部数组区别
稍微有些编程经验的朋友都会知道一个函数是无法返回一个局部数组的,至于原因,我想从两个方面进行说明,虽然并不是这两个方面都对其有影响,但我认为在这个问题上我们都该了解的东西:① 函数的返回类型不能为一个数组类型。这个就是说,作为函数返回类型的不能为一个数组,我们要想返回一系列的值,只能用一个指针来代替了,返回指向这一系列值的第一个元素的指针。② 局部数组,具有局部作用域,当函数调用结束之
2016-07-14 16:08:43
1114
转载 代码时间换空间以及空间换时间
void swap(int a, int b){ int c; c=a; a=b;b=a;}//--->空优 void swap(int a, int b){ a=a+b;b=a-b;a=a-b; }//根据以上的题意解释一下以时间换空间,和以空间换时间第一个,用空间换时间,swap中定义了c,就是在内存中又开辟了一个int内存空间,然后一次swap需要进行三次赋
2016-05-30 17:57:07
9668
转载 c语言开源项目
下次造轮子前先看看现有的轮子吧值得学习的C语言开源项目- 1. Webbench Webbench是一个在linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连接去测试网站的负载能力。Webbench使用C语言编写, 代码实在太简洁,源码加起来不到600行。下载链接:h
2016-05-30 13:38:16
861
转载 const 指针与指向const的指针
当使用带有const的指针时其实有两种意思。一种指的是你不能修改指针本身的内容,另一种指的是你不能修改指针指向的内容。 先说指向const的指针,它的意思是指针指向的内容是不能被修改的。它有两种写法。 const int* p; (推荐) int const* p; 第一种可以理解为,p是一个指针,它指向的内容是const i
2016-03-15 23:00:57
1175
转载 指针运算——算术运算、关系运算
简单来讲就是:C/C++允许将指针和整数进行相加操作,加1的结果就是等于原来的地址值加上指向对象占用的字节数(如 int*p =(int*)malloc(sizeof(int)*5), p+1 表示p指向内存地址加4个字节)。两个指针如果指向同一个数组,则两个指针进行算术运算才有意义,即 int* p =(int*)malloc(sizeof(int)*5);int*
2016-03-14 09:59:07
5519
原创 请问 char *型指针 和 int *型指针 的区别是什么?
区别1:还是指针,指针的2个内容要清楚 1个是指针类型 1个是指针地址char *p1;int *p2;p1 = (char *)malloc(1024 * 100);p2 = (int *)malloc(1024 * 100); 你分配了2块内存,一个100字节 首地址给了p1,一个是400字节 首地址给了p2 p1 = (char *)p2 执行了类型转换
2016-03-13 07:15:22
7234
1
转载 数组和指针背后——内存角度
聊过数组和指针的区别,主要是对于数组和指针在内存中的访问方式加以区分,这篇博文则从更深层的角度剖析数组和指针的联系如果你也对底层感兴趣、我向这篇文章会对你有所帮助,什么时候数组和指针相同(When an Array Is a Pointer )在实际应用中,他们可以互换的情形要大大多于不能互换的情形。首先再回顾一下声明和定义,(上一篇中有提到这里在深入一下)声明本身还可以进
2016-03-13 07:10:29
502
原创 %02x与%2x 之间的区别
输出最小宽度用十进制整数来表示输出的最少位数。若实际位数多于定义的宽度,则按实际位数输出,若实际位数少于定义的宽度则补以空格或0(当最小宽度数值以0开头时)。X 表示以十六进制形式输出02 表示不足两位,前面补0输出;如果超过两位,则实际输出举例:printf("%02X", 0x345); //打印出:345printf("%02X", 0x6); //打印出:06
2016-03-09 09:19:17
76755
1
转载 exit()与_exit()的区别
版权声明:本文为博主原创文章,未经博主允许不得转载。 从图中可以看出,_exit 函数的作用是:直接使进程停止运行,清除其使用的内存空间,并清除其在内核的各种数据结构;exit 函数则在这些基础上做了一些小动作,在执行退出之前还加了若干道工序。exit() 函数与 _exit() 函数的最大区别在于exit()
2016-01-26 16:34:53
625
转载 标准I/O的三种缓冲
最近,有几个同学让我看了一个程序,后来发现问题都是出在使用printf()函数进行输出时的缓冲模式造成的。比如这样的程序:#include stdio.h>int main(){ fprintf(stout,"1234"); while(1); return 0; } 程序并不是很长,但是就这样的程序出现了一个问题:
2016-01-26 16:33:46
1108
转载 Java中的private、protected、public和default的区别
(1)对于public修饰符,它具有最大的访问权限,可以访问任何一个在CLASSPATH下的类、接口、异常等。它往往用于对外的情况,也就是对象或类对外的一种接口的形式。(2)对于protected修饰符,它主要的作用就是用来保护子类的。它的含义在于子类可以用它修饰的成员,其他的不可以,它相当于传递给子类的一种继承的东西。(3)对于default来说,有点的时候也成为friendly(友员)
2016-01-13 15:32:49
378
转载 StringBuilder与StringBuffer的区别
采用String对象时,即使运行次数仅是采用其他对象的1/100,其执行时间仍然比其他对象高出25倍以上;而采用StringBuffer对象和采用StringBuilder对象的差别也比较明显,前者是后者的1.5倍左右。由此可见,如果我们的程序是在单线程下运行,或者是不必考虑到线程同步问题,我们应该优先使用StringBuilder类;当然,如果要保证线程安全,自然非StringBuffer莫属了
2016-01-13 15:12:16
301
转载 java 中super 的用法及意义
super出现在继承了父类的子类中。有三种存在方式:第一种super.xxx;(xxx为变量名或对象名)这种方法意义为,获取父类中的名字为xxx的变量或方法引用。使用这种方法可以直接访问父类中的变量或对象,进行修改赋值等操作第二种super.xxx();(xxx为方法名)这种方法意义为,直接访问并调用父类中的方法。第三种super();这种方法意义为,调
2016-01-12 09:40:30
774
转载 进程间通信--管道
前面我们学习了一下进程,我们知道多,进程间的地址空间相对独立。进程与进程间不能像线程间通过全局变量通信。 如果想进程间通信,就需要其他机制。 常用的进程间通信方式有这几种A.传统的进程间通信方式无名管道(pipe)、有名管道(fifo)和信号(signal)B.System v IPC对象共享内存(s
2015-12-15 16:53:28
421
转载 Linux进程间通信——使用消息队列
下面来说说如何用不用消息队列来进行进程间的通信,消息队列与命名管道有很多相似之处。有关命名管道的更多内容可以参阅我的另一篇文章:Linux进程间通信——使用命名管道一、什么是消息队列消息队列提供了一种从一个进程向另一个进程发送一个数据块的方法。 每个数据块都被认为含有一个类型,接收进程可以独立地接收含有不同类型的数据结构。我们可以通过发送消息来避免命名管道的同步和阻塞问题。但是消
2015-12-15 16:28:57
380
转载 进程间通信---共享内存
一、IPC(Inter-Process Communication,进程间通信)对象的介绍System V 的IPC对象有共享内存、消息队列、信号灯。注意:在IPC的通信模式下,不管是使用消息队列还是共享内存,甚至是信号灯,每个IPC的对象都有唯一的名字,称为"键"(key)。通过"键",进程能够识别所用的对象。"键"与IPC对象的关系就如同文件名称于文
2015-12-15 16:09:44
282
转载 进程间通信之:共享内存
8.5 共享内存 8.5.1 共享内存概述 可以说,共享内存是一种最为高效的进程间通信方式。因为进程可以直接读写内存,不需要任何数据的复制。为了在多个进程间交换信息,内核专门留出了一块内存区。这段内存区可以由需要访问的进程将其映射到自己的私有地址空间。因此,进程就可以直接读写这一内存区而不需要进行数据的复制,从而大大提高了效率。当然,由于多个进程共享一段内存,因此也需要
2015-12-15 16:01:08
541
转载 select、poll、epoll之间的区别总结[整理]
select,poll,epoll都是IO多路复用的机制。I/O多路复用就通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。但select,poll,epoll本质上都是同步I/O,因为他们都需要在读写事件就绪后自己负责进行读写,也就是说这个读写过程是阻塞的,而异步I/O则无需自己负责进行读写,异步I/O的实现会负责把数据从内核拷贝到用
2015-12-14 16:03:05
321
转载 socket通信
对TCP/IP、UDP、Socket编程这些词你不会很陌生吧?随着网络技术的发展,这些词充斥着我们的耳朵。那么我想问:1. 什么是TCP/IP、UDP?2. Socket在哪里呢?3. Socket是什么呢?4. 你会使用它们吗?什么是TCP/IP、UDP? TCP/IP(Trans
2015-12-03 14:42:33
293
转载 try catch 使用
一句话解释:try catch机制非常好。那些觉得try catch不行的人,是他们自己的水平有问题,无法理解这种机制。并且这群人写代码不遵守规则,喜欢偷懒,这才造成try catch不好的错觉。详细解释:1.程序要健壮,必须要设计报错机制。最古老,也是最常见的,比如:bool CreateFile( );//如果创建文件失败就返回false,否则返回true。这种
2015-12-03 09:12:34
690
转载 java中的extends implements含义以及区别
extends 继承 类X 通过extend 类Y来添加功能,或者添加变量,或者添加方法,或者覆盖类Y的方法。一个接口extends另外一个接口来添加方法。范例在 B 类别 (定义如下) 中,会自动插入一个以 A 类别之建构函式作为对象的呼叫,作为 B 建构函式的第一行陈述式,这是因为该处并未存在任何呼叫的缘故。 (也就是说,这个呼叫在范例中被注解化。)class B ex
2015-12-01 16:28:08
5236
转载 白话经典算法系列之五 归并排序的实现
归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。首先考虑下如何将将二个有序数列合并。这个非常简单,只要从比较二个数列的第一个数,谁小就先取谁,取了后就在对应数列中删除这个数。然后再进行比较,如果有数列为空,那直接将另一个数列的数据依次取出即可。[cpp] view plaincopy
2015-11-26 00:24:34
421
转载 简单Linux C线程池
大多数的网络服务器,包括Web服务器都具有一个特点,就是单位时间内必须处理数目巨大的连接请求,但是处理时间却是比较短的。在传统的多线程服务器模型中是这样实现的:一旦有个请求到达,就创建一个新的线程,由该线程执行任务,任务执行完毕之后,线程就退出。这就是"即时创建,即时销毁"的策略。尽管与创建进程相比,创建线程的时间已经大大的缩短,但是如果提交给线程的任务是执行时间较短,而且执行次数非常频繁,那么服
2015-11-21 17:34:30
367
原创 脚本之家的好网址: 首页 >> 软件编程 >> C 语言
推荐一个不错的学习网址:http://www.jb51.net/list/list_159_1.htm放在优快云 与大家共享!
2015-11-21 14:38:12
629
转载 c++实现简单的线程池
这里给大家介绍了C++中对于pthread线程的一个简单应用以及使用继承CDoit,实现其中的start和end,有需要的小伙伴可以参考下这是对pthread线程的一个简单应用1. 实现了线程池的概念,线程可以重复使用。2. 对信号量,互斥锁等进行封装,业务处理函数中只需写和业务相关的代码。3. 移植性好。如果想把这
2015-11-21 14:35:22
869
转载 深入解析C++ STL中的常用容器
这里我们不涉及容器的基本操作之类,只是要讨论一下各个容器其各自的特点。STL中的常用容器包括:顺序性容器(vector、deque、list)、关联容器(map、set)、容器适配器(queue、stac)STL是C/C++开发中一个非常重要的模板,而其中定义的各种容器也是非常方便我们大家使用。下面,我们就浅谈某些常用的容器。这里我们不涉及容器的基本操作之类,只是要
2015-11-21 14:32:42
9776
1
转载 C++设计模式之组合模式
这篇文章主要介绍了C++设计模式之组合模式,本文讲解什么是组合模式、组合模式的优点、组合模式实例等内容,需要的朋友可以参考下问题描述上图,是一个公司的组织结构图,总部下面有多个子公司,同时总部也有各个部门,子公司下面有多个部门。如果对这样的公司开发一个OA系统,作为程序员的你,如何设计这个OA系统呢?先不说如何设计实现,接着往下看,看完了下面的内容,
2015-11-21 14:24:22
462
转载 C++设计模式之外观模式
这篇文章主要介绍了C++设计模式之外观模式,本文详细讲解了C++中的Facade模式,并给出了实例代码,需要的朋友可以参考下前言在实际开发时,面对一个大的系统,总是会将一个大的系统分成若干个子系统,等子系统完成之后,再分别调用对应的子系统来完成对应的整体功能,这样有利于降低系统的复杂性;最终进行实现某个具体的功能时,我们将对应的子系统进行组合就好了;但是,子
2015-11-21 14:23:14
344
转载 C++设计模式之建造者模式
这篇文章主要介绍了C++设计模式之建造者模式,一个复杂对象是由多个部件组成的,建造者模式是把复杂对象的创建和部件的创建分别开来,分别用Builder类和Director类来表示,需要的朋友可以参考下建造者模式在GOF的《设计模式 可复用面向对象软件的基础》中是这样说的:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。这句话,
2015-11-21 14:22:25
415
转载 C++设计模式之抽象工厂模式
这篇文章主要介绍了C++设计模式之抽象工厂模式,本文要讲的抽象工厂模式,就是工厂方法模式的扩展和延伸,需要的朋友可以参考下问题描述之前讲到了C++设计模式——工厂方法模式,我们可能会想到,后期产品会越来越多了,建立的工厂也会越来越多,工厂进行了增长,工厂变的凌乱而难于管理;由于工厂方法模式创建的对象都是继承于Product的,所以工厂方法模式中,每个工厂只能
2015-11-21 14:20:26
354
转载 C++设计模式之桥接模式
这篇文章主要介绍了C++设计模式之桥接模式,本文讲解了什么是桥接模式、为什么要使用桥接模式、什么时候使用桥接模式等内容,需要的朋友可以参考下问题描述现在要去画一个图形,图形有长方形、圆形和扇形等等;而图形又可以加上不同的颜色,然后,我们就可以画出红色的长方形,绿色的长方形;红色的圆形,绿色的圆形等等。而这种图形的形状在变化,图形的颜色也在变化,当使用
2015-11-21 14:19:17
380
转载 C++设计模式之备忘录模式
这篇文章主要介绍了C++设计模式之备忘录模式,本文讲解了什么是备忘录模式、备忘录模式的UML类图、备忘录模式的使用场合等内容,需要的朋友可以参考下前言又到年底了,也静不下心来写代码了,大家都很浮躁;翻出经典的《仙剑奇侠传》玩一会;又要打大BOSS,先存一下档吧。这是我的习惯,在打大BOSS之前,都要先存一下档,要是打赢了,就再存一个档,覆盖之前的;如果打输了
2015-11-21 14:17:04
399
转载 #pragma once
概述编辑简单来讲,就是将#pragma once放在程序的头文件前面后,能够确保该头文件只编译一次。如果跨平台,则尽量使用, #ifndef __X_X_H__如果不是跨平台,则可以使用#pragma once这是一个比较常用的C/C++杂注,只要在头文件的最开始加入这条杂注,就能够保证头文件只被编译一次。#pragma once是编译器相关的
2015-11-21 11:05:24
561
转载 c++通用模板类(template class)定义实现详细介绍
有时,有两个或多个类,其功能是相同的,仅仅是数据类型不同,如下面语句声明了一个类:class Compare_int { public : Compare(int a,int b) { x=a; y=b; } int max( ) { return (x>y)?x:y; } int min( ) { return (x&...有时,有两个或多个类,其功能是相同的,仅仅是数据类型
2015-11-20 11:11:08
20028
1
转载 Linux下获取线程TID的方法——gettid() 获取进程 getpid()
如何获取进程的PID(process ID)?可以使用:#include pid_t getpid(void); 通过查看头文件说明,可以得到更详细的信息:find /usr/include -name unistd.h /usr/include/asm/unistd.h /usr/include/bits/un
2015-11-19 20:36:44
13714
原创 GTK中创建线程函数g_thread_new和g_thread_create的区别
使用GThread函数,需要引用glib.h头文件。这两个接口的核心区别就是 g_thread_create 是旧的接口,现在已经不使用了,而g_thread_new是新的接口,建议使用。g_thread_create:g_thread_create has been deprecated since version 2.32 and should not be used in
2015-11-19 20:09:10
8573
转载 TCP协议中的三次握手和四次挥手(图解)
建立TCP需要三次握手才能建立,而断开连接则需要四次握手。整个过程如下图所示:先来看看如何建立连接的。首先Client端发送连接请求报文,Server段接受连接后回复ACK报文,并为这次连接分配资源。Client端接收到ACK报文后也向Server段发生ACK报文,并分配资源,这样TCP连接就建立了。那如何断开连接呢?简单的过程如下:
2015-11-19 14:21:06
406
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人