
C/C++
木易云清
每天学习一点linux,每天学习享受生活,享受工作。
展开
-
C/C++中static关键字作用总结
1.先来介绍它的第一条也是最重要的一条:隐藏。(static函数,static变量均可)当同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。举例来说明。同时编译两个源文件,一个是a.c,另一个是main.c。//a.cchar a = 'A'; // global variablevoid msg(){转载 2013-12-12 21:05:45 · 623 阅读 · 0 评论 -
strcpy_s 和 strcat_s的用法
strcpy_s 和 strcat_s的用法 strcpy_s是系统的安全函数,微软在2005后建议用一系统所谓安全的函数,这中间就有strcpy_s取代了strcpy,原来strcpy函数,就象gets函数一样,它没有方法来保证有效的缓冲区尺寸,所以它只能假定缓冲足够大来容纳要拷贝的字符串。所以用strcpy_s代替,下面有一个使用strcpy_s的转载 2014-03-26 16:49:28 · 2892 阅读 · 0 评论 -
IOmeter使用说明
IOmeter简介IOMeter是一款功能非常强大的IO测试软件,它除了可以在本机运行测试本机的IO(磁盘)性能之外,还提供了模拟网络应用的能力。为了全面测试被测服务器的IO性能,可以分别选择不同类型的测试脚本。● Max_throughput:文件尺寸为64KB,100%读取操作,随机率为0%,用于检测磁盘系统的最大吞吐量 ● Max_IO:文件尺寸为512B,100%读取操转载 2014-04-10 15:00:29 · 1941 阅读 · 0 评论 -
怎样正确 移除迭代器所指元素
以下三段代码摘自《C++ 标准程序库》p204-205 代码段一:[cpp] view plaincopytypedef std::mapfloat> StringFloatMap; StringFloatMap coll; StringFloatMap::iterator pos; //... for (po转载 2014-04-11 11:28:43 · 864 阅读 · 0 评论 -
std::map查询效率优化
0.现状,数据是个xml文件,每个节点对应的结构体有10个成员变量,共有2000多条数据,用的std::map来保存,用map的find函数进行搜索时的效率极 其低下,循环搜索30条数据竟然要20s+,搓死。 1.为什么这么慢?最初怀疑是std::map的效率问题,正考虑是否使用std::hast_map来替换,于是了解下两者之间的差别:std::map是个自平衡的红黑树,他的效率是平均的hash转载 2014-04-10 09:07:58 · 1244 阅读 · 0 评论 -
likely()与unlikely()函数的意义
看内核时总遇到if(likely( )){}或是if(unlikely( ))这样的语句,最初不解其意,现在有所了解,所以也想介绍一下。likely() 与 unlikely()是内核(我看的是2.6.22.6版本,2.6的版本应该都有)中定义的两个宏。位于/include/linux/compiler.h中,具体定义如下:#define likely(x) __builtin_e转载 2014-05-12 10:39:39 · 693 阅读 · 0 评论 -
container_of分析
1.container_of宏1> Container_of在Linux内核中是一个常用的宏,用于从包含在某个结构中的指针获得结构本身的指针,通俗地讲就是通过结构体变量中某个成员的首地址进而获得整个结构体变量的首地址。2>接口:container_of(ptr, type, member) ptr:表示结构体中member的地址 type:表示结构体类型 membe转载 2014-05-21 13:21:57 · 527 阅读 · 0 评论 -
INT64_C的含义
其中定义如下:#ifndef INT64_C#define INT64_C(c) (c ## LL)#define UINT64_C(c) (c ## ULL)#endif所以意思就是原创 2014-06-17 15:33:41 · 3581 阅读 · 0 评论 -
GNU C 与ANSI C 相比,独特的9个地方
从人民邮电的《Linux设备驱动开发详解》上抄的华清远见的宋老师著,可惜咱没钱上他的课 百十来块钱的书 我还是从来不吝啬的可是 华清远见也不能出那么多书啊 本来想全买的,现在发现买的速度比不上他们出书的速度看了这一节感觉C语言的见识又大大增强发现了书中一处笔误,查资料时又发现了一些结构体对齐上别人的错误,^_^ 真有点飘飘然了这篇的东西只对GNU C转载 2014-06-20 17:21:16 · 558 阅读 · 0 评论 -
C语言宏与单井号(#)和双井号(##)
说明:以前知道,但是没 C(和C++)中的宏(Macro)属于编译器预处理的范畴,属于编译期概念(而非运行期概念)。下面对常遇到的宏的使用问题做了简单总结。关于#和##在C语言的宏中,#的功能是将其后面的宏参数进行字符串化操作(Stringfication),简单说就是在对它所引用的宏变量通过替换后在其左右各加上一个双引号。比如下面代码中的宏:#define WAR转载 2014-06-20 16:22:05 · 636 阅读 · 0 评论 -
strdup与strcpy
strdup与strcpy具体的区别,以及在不同操作系统下的使用。strdup原型:extern char *strdup(char *s);用法:#include 功能:复制字符串s说明:返回指向被复制的字符串的指针,所需空间由malloc()分配且可以由free()释放。举例: // strdup.c [cpp]#in转载 2014-05-06 16:17:46 · 492 阅读 · 0 评论 -
extern的部分用法
extern "C"这个就不说了。解决被编译器任务原创 2014-04-04 15:52:21 · 565 阅读 · 0 评论 -
C++代码注释规范(整理)
最近一直在给项目代码加注释,因为结项有一项工程性的要求是注释占到总行数的额50%,这几天可苦了我们几个。前几天为了统一项目组的注释规范,专门整理了一份,以后可能也用得着,放着备份下。1 源文件头部注释Ø 列出:版权、作者、编写日期和描述。Ø 示例:/*************************************************Copyrigh转载 2014-03-11 11:05:45 · 1223 阅读 · 0 评论 -
Dirs文件和Sources文件
转载于:http://blog.youkuaiyun.com/Kroosafe/archive/2008/12/11/3495679.aspx感谢作者!1. Dirs文件关于Dirs文件,就是指定要编译的路径,这个地球人都知道。还是简单介绍一下。按照文档上面介绍有三种定义:DIRS,DIRS_CE和OPTIONAL_DIRS。DIRS:就是指定要编译的目录。DIRS_CE:只转载 2014-03-19 10:24:24 · 576 阅读 · 0 评论 -
windows域与工作组概念
局域网上的资源需要管理,“域”和“工作组”就是两种不同的网络资源管理模式。那么二者有何区别呢? 工作组 Work Group 在一个网络内,可能有成百上千台电脑,如果这些电脑不进行分组,都列在“网上邻居”内,可想而知会有多么乱。为了解决这一问 题,Windows 9x/NT/2000就引用了“工作组”这个概念,将不同的电脑一般按功能分别列入不同的组中,如财务部的电脑都列入转载 2014-04-15 17:19:56 · 719 阅读 · 0 评论 -
struct hostent结构体
这个数据结构是这样的: struct hostent { char *h_name; char **h_aliases; int h_addrtype; int h_length; char **h_addr_list; }; #define h_addr h_addr_list[0] 这里是这个数据结构的详细资转载 2014-04-02 16:32:03 · 625 阅读 · 0 评论 -
socket编程在windows和linux下的区别
如无其它说明,本文所指Linux均表示2.6内核Linux,GCC编译器,Windows均表示Windows XP系统,Visual Studio 2005 sp1编译环境。下面大概分几个方面进行罗列:Linux要包含[cpp] #include #include #include #include 等头文件,而windows下转载 2014-04-02 16:27:14 · 710 阅读 · 0 评论 -
C++不定参数的用法
C++不定参数的用法 (C类似)2009-11-19 15:41/*va_list vl; //定义一个指向参数列表的变量(一个...指针)va_start(vl,first_param); //把指向参数列表的变量初始化va_arg(vl,mode); //获取下一个参数,参数类型由第二个参数指定,第二个参数用于在va_arg内部进行尺寸计算,以便找到下一个参数va_转载 2014-03-24 15:57:28 · 1252 阅读 · 0 评论 -
UNREFERENCED_PARAMETER的用处
作用:告诉编译器,已经使用了该变量,不必检测警告!在VC编译器下,如果您用最高级别进行编译,编译器就会很苛刻地指出您的非常细小的警告。当你生命了一个变量,而没有使用时,编译器就会报警告:“warning C4100: ''XXXX'' : unreferenced formal parameter.” 所以,为了让编译器不必检测你的警告,就使用UNREFERENCED_PA转载 2014-04-03 13:58:32 · 603 阅读 · 0 评论 -
关于WINSOCK.H与winsock2.h中的重定义解决办法分析
windows.h与winsock2.h的包含顺序大凡在Windows平台下用C++做网络开发很多时候都会同时包含这两个头文件,如若顺序不当(windows.h先于winsock2.h)就会出现很多莫名其妙的错误。诸如:警告 4 warning C4005: “AF_IPX”: 宏重定义 c:/program files/microsoft sdks/window转载 2014-04-03 14:03:44 · 779 阅读 · 0 评论 -
c++ 错误总结
error C2143: 语法错误 : 缺少“;”(在“error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int原创 2014-04-04 15:23:43 · 569 阅读 · 0 评论 -
__thread关键字
c语言博大精深,还有很多要学习,加油转载 2014-06-22 19:24:31 · 1183 阅读 · 0 评论