![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++
anssummer
只求每天进步一点点.
展开
-
linux下C语言编程,include的默认搜索路径
C语言编程时,发现细节的魅力很大。较为详细了看了一下关于include的知识,发现了几点新知:1.include和include"头文件名"如:include和include"stdio.h"前者(使用后者(使用""),来引用stdio.h文件,是首先检索文件的当前路径;如果没有,再检索标准路径,看看这些文件夹下是否有该头文件。2.linux下,上述标准路径原创 2013-09-29 16:26:08 · 1434 阅读 · 0 评论 -
c++基础
realloc 可以对给定的指针所指的空间进行扩大或者缩小,原有内存的中内容将保持不变。当然,对于缩小,则被缩小的那一部分的内容会丢失。 realloc 并不保证调整后的内存空间和原来的内存空间保持同一内存地址。相反,realloc 返回的指针很可能指向一个新的地址: 因为realloc是从堆上分配内存的,当扩大一块内存空间时, realloc直接从堆上现存的数据后面的那些字原创 2013-10-03 16:16:16 · 788 阅读 · 0 评论 -
typedef struct 用法详解
当用下面的代码定义一个结构时,编译器报了一个错误,为什么呢?typedef struct pNode{ char *pItem; pNode pNext;} *pNodewhy?typedef struct tagMyStruct{ int iNum; long lLength;} MyStruct;这语句实际上完成两个操作:1) 定义原创 2013-10-09 19:46:09 · 1225 阅读 · 1 评论 -
c++基础
1.struct关键字struct Movie/*可以指定类型名也可以不指定*/{ //成员都是public的 int ID; string Name;} movie; //可以在声明struct的时候声明一个struct实例,这个有啥意思呢? int main(){ //movie变量在Movie结构声明处定义了 movie.ID =原创 2013-10-09 19:52:37 · 806 阅读 · 0 评论 -
求二叉树高度
因为树是递归定义的,所以用递归算法很方便。[cpp] view plaincopyprint?#define _CRT_SECURE_NO_WARNINGS #include #include using namespace std; struct Node { char data; N原创 2013-10-10 12:10:38 · 999 阅读 · 0 评论 -
c++变量作用域
C++中变量的作用域与生命周期对一个C++变量来说,有两个属性非常重要:作用域和生命周期,它们从两个不同的维度描述了一个变量--时间和空间。顾名思义,作用域就是一个变量可以被引用的范围,如:全局作用域、文件作用域、局部作用域;而生命周期就是这个变量可以被引用的时间段。不同生命周期的变量,在程序内存中的分布位置是不一样的。一个程序的内存分为代码区、全局数据区、堆区、栈区,不同的内存区域,对应原创 2013-09-26 20:04:13 · 832 阅读 · 0 评论 -
C语言中的宏定义
1. 简单宏定义简单的宏定义有如下格式:[#define指令(简单的宏)] #define 标识符替换列表替换列表是一系列的C语言记号,包括标识符、关键字、数、字符常量、字符串字面量、运算符和标点符号。当预处理器遇到一个宏定义时,会做一个 “标识符”代表“替换列表”的记录。在文件后面的内容中,不管标识符在任何位置出现,预处理器都会用替换列表代替它。转载 2013-10-30 13:02:10 · 968 阅读 · 0 评论 -
coredump设置方法
本地地址:http://blog.csdn.net/wj_j2ee/article/details/7161586 关于内核转储的设置方法 1. 内核转储作用 (1) 内核转储的最大好处是能够保存问题发生时的状态。(2) 只要有可执行文件和内核转储,就可以知道进程转载 2013-11-17 11:52:39 · 2760 阅读 · 0 评论 -
详解coredump
本文地址:http://blog.csdn.net/tenfyguo/article/details/8159176一,什么是coredump 我们经常听到大家说到程序core掉了,需要定位解决,这里说的大部分是指对应程序由于各种异常或者bug导致在运行过程中异常退出或者中止,并且在满足一定条件下(这里为什么说需要满足一定的条件呢?下面会分析)会产生一个叫做cor转载 2013-11-17 11:38:55 · 948 阅读 · 0 评论 -
解析“extern”
解析“extern”1、 声明外部变量现代编译器一般采用按文件编译的方式,因此在编译时,各个文件中定义的全局变量是互相透明的,也就是说,在编译时,全局变量的可见域限制在文件内部。下面举一个简单的例子。创建一个工程,里面含有A.cpp和B.cpp两个简单的C++源文件://A.cppint i; void main(){}原创 2014-05-02 10:13:34 · 383 阅读 · 0 评论 -
c++嵌套类
Ex:class A{public: static int a; class A1 { void output() { cout//instead of A::a; } }; };int A::a;可见,类 A1 嵌入A后访问A的静态变量原创 2013-10-05 16:20:08 · 744 阅读 · 0 评论 -
c语言实现hashtable
简单实现了哈希表的插入和查找功能,简要说明如下:1、数据结构:struct HashNode{ char* sKey; //键 int nValue; //值 HashNode* pNext; //当Hash值冲突时,指向HASH值相同的下一个节点。}原创 2013-10-05 16:08:18 · 1112 阅读 · 0 评论 -
c++内存对齐
1 //环境:vc6 + windows sp2 2 //程序1 3 #include 4 5 using namespace std; 6 7 struct st1 8 { 9 char a ;10 int b ;11 short c ;12 };13 14 struct st215 {16 s原创 2013-10-03 14:18:13 · 749 阅读 · 1 评论 -
虚函数和纯虚函数 动态绑定
1.虚函数 纯虚函数:1.虚函数和纯虚函数可以定义在同一个类中,含有纯虚函数的类被称为抽象类,而只含有虚函数的类不能被称为抽象类。2.虚函数可以被直接使用,也可以被子类重载以后,以多态的形式调用,而纯虚函数必须在子类中实现该函数才可以使用,因为纯虚函数在基类有声明而没有定义。3.虚函数和纯虚函数都可以在子类中被重载,以多态的形式被调用。4.虚函数和纯虚函数通常存在于抽象基类之中,被原创 2013-10-04 11:16:16 · 1159 阅读 · 0 评论 -
对象实例化内存分配
1.成员函数占用存储空间吗?成员函数不占存储空间,只是在调用时,转到函数入口地址, 调用完改函数在返回,成员函数和普通函数一样对象的实例化导致的动态内存分配只包括非静态成员变量和虚表指针(如果有虚函数的话)需要的空间成员函数放在代码区,多个对象共享。。从汇编的角度看 成员函数跟普通的函数没什么两样只是参数经过C++编译器的修改,第一个参数总是this2.类中成员原创 2013-10-03 14:37:00 · 1530 阅读 · 0 评论 -
c++内存布局
译者前言一个C++程序员,想要进一步提升技术水平的话,应该多了解一些语言的语意细节。对于使用VC++的程序员来说,还应该了解一些VC++对于C++的诠释。 Inside the C++ Object Model虽然是一本好书,然而,书的篇幅多一些,又和具体的VC++关系小一些。因此,从篇幅和内容来看,译者认为本文是深入理解C++对象模型比较好的一个出发点。这篇文章以前看到时就觉得很好,转载 2013-10-03 16:07:16 · 600 阅读 · 0 评论 -
c++内存布局经典文章
C++对象内存布局的资料:陈皓老师的博客:1、C++对象的内存布局(上)2、C++对象的内存布局(下)白杨:RTTI、虚函数和虚基类的实现方式、开销分析及使用指导左手为你画猜:C++类对象内存模型与成员函数调用分析(上、中、下)liu_军钻石型虚拟多重继承的C++对象内存模型原创 2013-10-03 15:39:56 · 806 阅读 · 0 评论 -
fork和管道的关系
问题:fork是用来创建进程的,子进程复制与父进程完全一样代码,但是与pipe连用时,也要复制pipe吗?个自往自己管道也东西,读东西,是如何实现进程间通信的呢?答案:fork()不仅创建出与父进程代码相同的子进程,而且父进程在fork执行点的所有上下文场景也被自动复制到子进程中,包括:—全局和局部变量—打开的文件句柄—共享内存、消息等同步对象 由于pipe调用相当于创建了2个文原创 2013-10-04 18:49:24 · 2179 阅读 · 0 评论 -
Linux/Unix下pid文件作用浅析
在Linux系统的目录/var/run下面一般我们都会看到很多的*.pid文件。而且往往新安装的程序在运行后也会在/var/run目录下面产生自己的pid文件。那么这些pid文件有什么作用呢?它的内容又是什么呢?(1) pid文件的内容:pid文件为文本文件,内容只有一行, 记录了该进程的ID。用cat命令可以看到。(2) pid文件的作用:防止进程启动多个副本。只有获得pid文件(固定路径固定文原创 2013-10-04 19:57:56 · 776 阅读 · 0 评论 -
Linux进程间通信(一)
Linux进程间的通信机制如下图所示:1、同主机进程间数据交互机制:无名管道(PIPE)、有名管道(FIFO)、消息队列(Message Queue)和共享内存(Share Memory)。2、同主机进程间同步机制:信号量(semaphore)。3、同主机进程间异步机制:信号(Signal)。4、网络主机间数据交互机制:套接字(Socket)。原创 2013-10-04 23:36:36 · 748 阅读 · 0 评论 -
linux进程通信
linux下的进程通信手段基本上是从Unix平台上的进程通信手段继承而来的。而对Unix发展做出重大贡献的两大主力AT&T的贝尔实验室及BSD(加州大学伯克利分校的伯克利软件发布中心)在进程间通信方面的侧重点有所不同。前者对Unix早期的进程间通信手段进行了系统的改进和扩充,形成了“system V IPC”,通信进程局限在单个计算机内;后者则跳过了该限制,形成了基于套接口(socket)的进程间原创 2013-10-04 22:40:08 · 719 阅读 · 0 评论 -
libevent在异步socket中使用的例子
有三个例子,第一个例子最简单,只是介绍一下大概的使用方法;第二个例子是自己处理异步socket出现可读可写;第三个例子是使用libevent内部提供的bufferd来处理可读可写的事件。第一个例子:libevent_echosrv1.c/* * libevent echo server example. */#include #include #include转载 2014-06-11 15:22:35 · 899 阅读 · 0 评论