C/C++
西厂程序员
热爱互联网,没事搞搞机,学学CS。
展开
-
多线程编程---条件变量的逻辑分析
最近学习多线程编程,感觉代码的逻辑运行机理(也即是多个线程的切换、调用机理)是多线程编程需要注意的。先看下面的例程:#include <stdio.h>#include <stdlib.h>#include <pthread.h>pthread_mutex_t mutex; /* 定义互斥量 */int x; /* 定义全局变量 */void ...原创 2015-12-30 12:16:55 · 662 阅读 · 0 评论 -
运算符重载典例:Vector-维克多
我们在上一节介绍了关于重载和友元的概念和用法!这篇文章重点介绍运算符重载的一些实例。 上篇我们已经说了,运算符重载相当于赋予运算符”拓展功能”。所以并不局限于“加减乘除”等。我们在C++中,使用打印函数时,常常用count<<来表示,但我们也知道<<,也可以表示“移位”!这里其实就是对<<做了“运算符重载”!我们也知道,当要输出类Time对象coding的hours,minutes值时,我们必原创 2017-01-10 21:39:50 · 2805 阅读 · 0 评论 -
重载/友元
重载分为函数重载和运算符重载!重载本身的概念在C++中通俗含义是:相同的某个元素表达不同的意思!我们首先来看函数重载。函数重载 函数重载本身时比较简单明了的,即定义同一个函数名称,通过设置不同的传入参数来使之成为不同的函数!如下所示: Time(); Time(int h, int m = 0);在类声明中声明同一个函数名称Time(注意,这是个特殊的函数,我们称之为构造函数,即创建对象时,将自原创 2017-01-10 20:53:15 · 543 阅读 · 0 评论 -
类/指针/函数/this
这几个元素加一块,如果对其不是很理解,怕是看不懂源码。我们首先看三段代码: 1、定义: #ifndef STOCK_H_ #define STOCK_H_ #include"stdafx.h" #include class Stock { private: std::string company; int shares; double sh原创 2016-12-13 15:16:22 · 811 阅读 · 0 评论 -
linux内核中的likely和unlikely
linux内核中的likely和unlikely Kernel version:2.6.14 CPU architecture:ARM920T Author:ce123(http://blog.csdn.net/ce123) GCC version:arm-linux-gcc-3.4.1 看内核时经常遇到if(likely( )){}或是if(unlikely转载 2016-02-28 10:25:36 · 680 阅读 · 0 评论 -
64位和32位的区别
最近在调试UDP传输视频数据的时候,发现不同编译器下的定义的相同的结构体在传输的时候导致大小改变,从而使得数据传输出错。感觉下边的一篇文章总结的不错! ----------------------------------------------------------------------------------------- 转载自:http://blog.csdn.net/zhongzh转载 2016-03-21 10:02:22 · 874 阅读 · 0 评论 -
结构体指针和结构体嵌套
原文 http://www.cnblogs.com/chenqingxiao/p/4364404.html 结构体指针 概念: 当一个指针指向一个结构体变量的时候,就叫做结构体指针,结构体指针指向结构体变量的首地址 访问成员值: #include int main(int argc, const char * argv[]) { str转载 2016-02-23 19:04:04 · 1782 阅读 · 0 评论 -
select()函数和fd_set
select()函数主要是建立在fd_set类型的基础上的。fd_set(它比较重要所以先介绍一下)是一组文件描述字(fd)的集合,它用一位来表示一个fd(下面会仔细介绍),对于fd_set类型通过下面四个宏来操作: fd_set set; FD_ZERO(&set); /* 将set清零使集合中不含任何fd*/ FD_SET(fd, &set); /* 将f转载 2016-03-08 16:12:54 · 989 阅读 · 0 评论 -
对Socket函数的理解
今天看到select()函数,对Socket_fd的操作,忽然生疑:Socket描述符到底是什么东西?这篇文章的解释给了我答案: socket函数 功能:指定协议类型 定义: #include sys/types.h> #include sys/socket.h> int socket(int family, int type, int prot转载 2016-03-08 16:07:59 · 389 阅读 · 0 评论 -
类(Classes)的定义与实现
转自:http://www.cnblogs.com/mr-wid/archive/2013/02/18/2916309.html 一、"类" 的介绍 在C++中, 用 "类" 来描述 "对象", 所谓的"对象"是指现实世界中的一切事物。那么类就可以看做是对相似事物的抽象, 找到这些不同事物间的共同点, 如自行车和摩托车, 首先他们都属于"对象", 并且具有一定得相同点, 和一些转载 2016-03-02 16:52:28 · 547 阅读 · 0 评论 -
execve的用法举例
execve的“官方”用法解释是: int execve(const char * filename,char * const argv[ ],char * const envp[ ]); execve()用来执行参数filename字符串所代表的文件路径,第二个参数是利用指针数组来传递给执行文件,并且需要以空指针(NULL)结束,最后一个参数则为传递给执行文件的新环境变量数组。 那原创 2015-12-23 21:14:43 · 1531 阅读 · 0 评论 -
ADT的栈的实现
ADT,称为抽象数据类型。所谓抽象数据类型,即定义一种数据形式,并封装该数据的操作方法。 参考链接: http://blog.csdn.net/qscool1987/article/details/7179791, 这里我们在C++中实现一种“栈”的抽象数据类型。首先介绍一下栈:栈(stack)又名堆栈,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相原创 2017-01-10 21:50:51 · 2325 阅读 · 0 评论