c/c++
iteye_9367
这个作者很懒,什么都没留下…
展开
-
[转载]堆和栈的区别
堆和栈的区别 一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、全局区(静态区...2008-01-29 13:07:00 · 62 阅读 · 0 评论 -
Linux下C语言编程的 RPC远程调用编程
在查看libc6-dev软件包提供的工具(用 dpkg -L libc6-dev 命令)的时候,发现此软件包提供了一个有用的工具rpcgen命令。通过rpcgen的man手册看到此工具的作用是把RPC源程序编译成C语言源程序,从而轻松实现远程过程调用。下面的例子程序的作用是客户端程序取中心服务器上时间的,编程过程如下:先编写一个 “ RPC 语言 ” ( RPC Language ( Remote...原创 2008-07-17 15:38:20 · 225 阅读 · 0 评论 -
关于Linux下C/C++程序编译
在编译之前我们需要在系统里安装G++ GCC,它们就是Linux下的C++/C的编译器。代码如下代码:sudo apt-get install build-essentialsudo apt-get install gccsudo apt-get install g++好,现在我们在文本编辑器里写一个C的简单的程序(好像所有学习C或者C++的书都会出现)代码:#include <stdio...2007-08-23 18:15:00 · 81 阅读 · 0 评论 -
使用 setfill、setw 和 setprecision 基数的示例
使用 setfill、setw 和 setprecision 操作器,这些操作器带有参数,并在头文件 iomanip.h 中定义。因此,此头文件必须包括在程序中。 #include<iostream.h> #include <iomanip.h> #include<conio.h> void main() { int amt1 = 100, amt2 =...2007-08-23 19:00:00 · 98 阅读 · 0 评论 -
C和C++中如何互相调用
因为历史上是先有C后有C++,所以C++中调用C中的函数加个extern "C" 既可.假如C的文件为c.c和c.h,C中有C_fun()函数C++的文件为cpp.cpp和cpp.h-----------------------------------------------------------------------------c.h的实现#ifndef _c_h_#define _c_h_...2007-09-12 12:36:00 · 85 阅读 · 0 评论 -
ourhdr.h
/*Our own header, to be included after all standard system headers*/#ifndef __ourhdr_h #define __ourhdr_h #include <errno.h>/*for definition of errno */#include <stdarg.h>/*ANSI ...2007-09-16 12:06:00 · 120 阅读 · 0 评论 -
环形缓冲
/** * Copyright (c) 2008, ×××研发中心 * All rights reserved. * * 名 称: * 摘 要: * 作 者:test * 版 本:1.0 * 时 间:08.08.27 16:21:55 */#include <stdio.h>#include <string.h>#in...原创 2008-08-27 17:20:13 · 144 阅读 · 0 评论 -
对 pthread_cond_wait 的错误理解
在线程的调度中经常会用到 pthread_cond_wait 来block 线程 等待线程条件的到来。之前以为pthread_cond_wait 是在 条件满足的时候 释放锁。后来发现原来【pthread_cond_wait 是在阻塞的时候就释放锁了,解除阻塞的时候又获取了锁】后来想想也是啊,自己已经阻塞了 再拿着锁,其他线程还怎么运行啊。切记啊!!...2008-08-28 15:52:04 · 296 阅读 · 0 评论 -
ICE初次
按照某人的说法:跨平台的C++网络编程ICE才是王道。于是,我学习ICE。 ICE才出来两年,是“一种现代的面向对象中间件,可用于替代像CORBA或COM/DCOM/COM+这样的中间件。在易于学习的同时,它为各种有着苛刻的技术要求的应用提供了强大的网络基础设施。”Ice 3.0 已实现对C++, Java, Python, PHP, C# 及Visual Basic 的支持。 这里我就不...原创 2008-09-02 01:48:28 · 93 阅读 · 0 评论 -
climits中的符号常量
climits中的符号常量 符号常量表示CHAR_BITchar 的位数CHAR_MAXchar 的最大值CHAR_MINchar 的最小值SCHAR_MAXsigned char 的最大值SCHAR_MINsigned char 的最小值UCHAR_MAXunsigned char 的最大值SHRT_MAXsho...原创 2008-12-10 11:43:14 · 118 阅读 · 0 评论 -
为什么要用补码来做存储
看了些补码的知识,摘抄了些,自己整理了些。顺便带着两个小问题:INT_MAX = 2147483647 ;cout<<INT_MAX+1<<endl; //正确结果为-2147483648UINT_MAX = 4294967295;cout<<UINT_MAX+1<<endl; //正确结果为0开始正文:负数在计算...原创 2012-04-12 18:02:57 · 166 阅读 · 0 评论 -
c中的移位操作
位移位运算符是将数据看成二进制数,对其进行向左或向右移动若干位的运算。位移位运算符分为左移和右移两种,均为双目运算符。第一运算对象是移位对象,第二个运算对象是所移的二进制位数。 位移位运算符的运算对象、运算规则与结果、结合性如表2-16所示。 移位时,移出的位数全部丢弃,移出的空位补入的数与左移还是右移花接木有关。如果是左移,则规定补入的数全部是0;如果是右移,还与被移位的数据是否...原创 2012-04-12 18:18:18 · 205 阅读 · 0 评论 -
C++中重载操作符时什么时候定义成友元,什么时候定义为成员方法
在C++语言中,可以用关键字operator加上运算符来表示函数,叫做运算符重载。例如两个复数相加函数: Complex Add(const Complex &a, const Complex &b);可以用运算符重载来表示: Complex operator +(const Complex &a, const Complex &b);...原创 2008-07-10 18:05:35 · 327 阅读 · 0 评论 -
c++中的存储类型
存储类型是从变量的存在时间(即生存期)来划分变量。变量的存储类型可分为静态存储方式和动态存储方式。对于动态存储变量,当程序运行到该变量处时才为其分配存储空间,当程序运行到该变量所在作用域的结束处时自动收回为其分配的存储空间,因此它的生存期为所在作用域。在程序开始就执行就为其分配存储空间,直到程序结束时,才收回变量的存储空间,这种变量称为静态存储空间,其生命周期为整个程序执行的过程。在c++中...2008-07-06 00:46:16 · 183 阅读 · 0 评论 -
linux下编程之-- 位运算
C语言中的位运算 在计算机程序中,数据的位是可以操作的最小数据单位,理论上可以用“位运算”来完成所有的运算和操作。一般的位操作是用来控制硬件的,或者做数据变换使用,但是,灵活的位操作可以有效地提高程序运行的效率。C语言提供了位...2008-02-28 01:30:27 · 237 阅读 · 0 评论 -
c++的const应用
对于基本声明1. const int r=100; //标准const变量声明加初始化,因为默认内部连接所以必须被初始化,其作用域为此文件,编译器经过类型检查后直接用100在编译时替换2. extend const int r=100; //将const改为外部连接,作用于扩大至全局,编译时会分配内存,并且可以不进行初始化,仅仅作为声明,编译器认为在程序其他地方进行了定义...2008-03-13 00:50:20 · 114 阅读 · 0 评论 -
C/C++ unit testing tools (18 found)
C/C++ unit testing tools (18 found) Boost http://www.boost.org/libs/test/doc/index.html Description: TheBoost Test Library provides a matched set of components f...原创 2008-12-19 01:27:15 · 146 阅读 · 0 评论 -
string 的 data() 和c_str()
data 是字符数组,里面有 '\0 '当然也不会删掉string的原则就是无视这个c字符串规则. c_str 是产生c字符串,也就是即使没有 '\0 '结尾,她也会添加一个. 仔细体会意思...原创 2008-12-24 01:17:05 · 357 阅读 · 0 评论 -
google test 使用
安装:下载Google C++ Testing Framework,解压...VC2005: 直接打开msvc\gtest.vcproj或msvc\gtest.sln,直接编译即可。Linux/Unix下的GCC: 传统过程:./configure makeMingw:BCC: 用Mingw和BCB6编译需要修改一些代码,过几天我会上传到www.cpppro...原创 2009-01-03 13:59:24 · 170 阅读 · 0 评论 -
static_cast、dynamic_cast、reinterpret_cast、和const_c
static_cast、dynamic_cast、reinterpret_cast、和const_cast关于强制类型转换的问题,很多书都讨论过,写的最详细的是C++ 之父的《C++ 的设计和演化》。最好的解决方法就是不要使用C风格的强制类型转换,而是使用标准C++的类型转换符:static_cast, dynamic_cast。标准C++中有四个类型转换符:static_cast、dynamic...2008-04-10 15:14:23 · 62 阅读 · 0 评论 -
dynamic_cast、static_cast、const_cast 和 reinterp
dynamic_cast、static_cast、const_cast 和 reinterpret_cast 一、dynamic_cast: 用法: dynamic_cast<type-id> (expression).将expression转化为具有type-id型的指针。type-id必须是一个 指针、引用(一个已经定义的类)或者...2008-04-10 15:16:24 · 143 阅读 · 0 评论 -
module的认识和写法
不知道在什幺时候,Linux 出现了 module 这种东西,的确,它是 Linux 的一大革新。有了 module 之后,写 devicedriver 不再是一项恶梦,修改 kernel 也不再是一件痛苦的事了。因为你不需要每次要测试 driver 就重新 compilekernel 一次。那简直是会累死人。Module 可以允许我们动态的改变 kernel,加载 device driver...2008-04-15 15:29:34 · 296 阅读 · 0 评论 -
GNU C的 __attribute__ 机制
GNU C的一大特色(却不被初学者所知)就是__attribute__机制。__attribute__可以设置函数属性(Function Attribute)、变量属性(Variable Attribute)和类型属性(Type Attribute)。__attribute__书写特征是:__attribute__前后都有两个下划线,并切后面会紧跟一对原括弧,括弧...2008-04-15 15:34:28 · 81 阅读 · 0 评论 -
自己动手改写komodo sourcetree插件 对C/C++的支持
其实很简单了, 找到sourcetree.js 的 正则判断那一块加上case 'C++': function_tag =/^\s*[\w<>\(\)_\s"\*]+\s+([\w:\*&>\[\]=<]+)\(.*[^;]+$|^\s*(main)\(|\s*(\w+::[\w~]+)\(.*[^;]+$/;...2008-04-16 22:11:01 · 275 阅读 · 0 评论 -
libevent 一个time server
#include <netinet/in.h>#include <sys/socket.h>#include <sys/types.h>#include <event.h>#include <stdio.h>#include <time.h>void connection_time(int fd, short e...2008-05-19 11:20:22 · 76 阅读 · 0 评论 -
strlcpy 的历史
strlcpy 并不属于 ANSI C,至今也还不是标准。strlcpy 来源于 OpenBSD 2.4,之后很多 unix-like 系统的 libc 中都加入了 strlcpy 函数,在 FreeBSD、Linux 里面都找到了 strlcpy。(Linux使用的是 glibc,glibc里面有 strlcpy,则所有的 Linux 版本也都应该有 strlcpy)但 Windo...原创 2012-11-05 18:51:20 · 223 阅读 · 0 评论