
C/C++编程知识
文章平均质量分 68
lvpwin
这个作者很懒,什么都没留下…
展开
-
Linux下c开发 之 线程通信
1.Linux“线程”进程与线程之间是有区别的,不过Linux内核只提供了轻量进程的支持,未实现线程模型。Linux是一种“多进程单线程”的操作系统。Linux本身只有进程的概念,而其所谓的“线程”本质上在内核里仍然是进程。大家知道,进程是资源分配的单位,同一进程中的多个线程共享该进程的资源(如作为共享内存的全局变量)。Linux中所谓的“线程”只是在被创建时clone了父进程的资源,因此cl转载 2009-07-13 23:31:00 · 1251 阅读 · 1 评论 -
VC++中全局变量、全局常量、全局结构体的定义
VC++中关于全局量的定义有两种比较好的方法。第一种新建一个Generic Class类,如CGlobals。会产生一个Globals.h头文件和一个Globals.cpp文件,在ClassView中会产生一个 CGlobals类。由于主要目的是利用产生的.h和.cpp文件,所以,将两个文件中关于类声明和定义的部分都删除或注释掉,但保留其他语句,此时 ClassView中的CGloba转载 2009-06-29 17:23:00 · 3537 阅读 · 0 评论 -
有关字节对齐的介绍
什么是对齐,以及为什么要对齐:现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定变量的时候经常在特定的内存地址访问,这就需要各类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类型的数据只能从某些特定地址开始存取。其他平转载 2009-06-29 17:14:00 · 340 阅读 · 0 评论 -
kdevelop的点滴收获-使用kdevelop内建的调试器
在FreeBSD下安装的Kdevelop,如果不进行配置的情况下使用内建调试器会造成程序“无响应”,要正常使用内建调试器需要对“工程”菜单中的“工程选项”进行配置。对一个工程进行调试的步骤如下:1、利用Kdevelop的向导新建一个工程2、默认情况下,工程的“构建配置”使用的都是“Debug“,这样按 F8 所建立工程就是一个包含有 full-debug 信息的可执行程序。3、打开“工程”菜单->转载 2009-06-29 22:45:00 · 3281 阅读 · 0 评论 -
kdevelop的点滴收获— 关于代码自动补全
kdevelop作为集成开发环境,提供了代码自动补全功能,这个功能可以在用户输入代码时,根据程序上下文显示可用的成员函数列表并自动补齐,并且提供成员函数的参数提示以及一些参数的注释信息。这得益于kdevelop所完成的代码分析功能。默认安装的kdevelop是不提供代码自动补全功能的,如果要使用这个功能,需要打开相应的选项,而且要建立代码自动补全所需的“数据库”一、建立函数描述数据库,Kdevel转载 2009-06-29 22:42:00 · 3363 阅读 · 0 评论 -
Linux下常用函数-字符串函数
atof(将字符串转换成浮点型数) 相关函数 atoi,atol,strtod,strtol,strtoul表头文件 #include 定义函数 double atof(const char *nptr);函数说明 atof()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时(/0)才结束转换,并将结果返回。参数n转载 2009-06-29 17:27:00 · 646 阅读 · 0 评论 -
getopt_long及其使用
Linux系统下,需要大量的命令行选项,如果自己手动解析他们的话实在是有违软件复用的思想,不过还好,GNU C library留给我们一个解析命令行的接口(X/Open规范),好好使用它可以使你的程序改观不少。使用getopt_long()需要引入头文件 #include 现在我们使用一个例子来说明它的使用。 一个应用程序需要如下的短选项和长选项。 短选转载 2009-06-29 17:26:00 · 470 阅读 · 0 评论 -
关于select函数
关于select函数:其函数原型为:int select(int n, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct tim *timeout);此函数的功能是由内核检测在timeout时间内,是否有readfds,writefds,exceptfds三个句柄集(file descriptors)里的某个句柄(file d转载 2009-06-29 17:24:00 · 597 阅读 · 0 评论 -
变长结构体
typedef struct tagTest{int uID;int iNum;int offsetint data[1]; //可变长数据,根据所需要数据类型定义}Test;data是一个数据,个数为1,但是其实在使用的时候,不一定为1,也就是说在上述结构不能直接Test tmp;这样声明,必要声明成指针,然后在malloc的时候,根据iNum数目进行申请,譬如iNum为5个int,这可以这样p转载 2009-06-29 17:16:00 · 414 阅读 · 0 评论 -
动态创建数组
对于一维数组可以用T *arr=new T[n]的形式动态创建,而new对于多维数组在创建时只能有一维是可以动态改变的,其它的则必须给出。如:T (*darr)[5][6];darr=new darr[n][5][6]; 下面是动态创建数组的两个方法: 1. const int xsize=10; const int y转载 2009-07-19 22:14:00 · 464 阅读 · 0 评论 -
Linux C函数库参考手册
第1章 字符测试函数 isalnum(测试字符是否为英文字母或数字) isalpha(测试字符是否为英文字母) isascii(测试字符是否为ASCII码字符) isblank(测试字符是否为空格字符) iscntrl(测试字符是否为ASCII码的控制字符) isdigit(测试字符是否为阿拉伯数字转载 2009-07-15 14:48:00 · 787 阅读 · 0 评论 -
ntohs, ntohl, htons,htonl inet_aton等详解
ntohs =net to host short int 16位htons=host to net short int 16位ntohs =net to host long int 32位htonl=host to net long int 32位简述: 将一个无符号短整形数从网络字节顺序转换为主机字节顺序。 #include u_short PASCAL FA转载 2009-06-29 17:25:00 · 5484 阅读 · 0 评论