随笔分类 - C++/C
关于C++/C的一些东东
摘要:<condition_variable >头文件主要包含了与条件变量相关的类和函数。相关的类包括 std::condition_variable和 std::condition_variable_any,还有枚举类型std::cv_status。另外还包括函数 std::notify_all_at_
阅读全文
摘要:1. 对齐原则。比如64位总线,每次寻址读取8B。编程时注意变量地址,尽量消耗总线最少的寻址次数。堆内存申请时,系统严格按照对齐原则分配,故而使用时候也尽量不要跨寻址边界。 2. 需要的时候,可为了效率拷贝代码,虽然增加了代码体积,但这是值得的。尤其是for循环,若次数比较少,拆开亦无妨。 3. 位
阅读全文
摘要:codeblocks的配置文件是default.conf,在Windows系统下,该文件在C:\Documents and Settings\Administrator\Application Data\CodeBlocks;在Linux系统下,该文件在~/.codeblocks。该文件夹在code
阅读全文
摘要:C的NULL 在C语言中,我们使用NULL表示空指针,也就是我们可以写如下代码: int *i = NULL;foo_t *f = NULL; 实际上在C语言中,NULL通常被定义为如下: #define NULL ((void *)0) 也就是说NULL实际上是一个void *的指针,然后吧voi
阅读全文
摘要:UTF8是以8bits即1Bytes为编码的最基本单位,当然也可以有基于16bits和32bits的形式,分别称为UTF16和UTF32,但目前用得不多,而UTF8则被广泛应用在文件储存和网络传输中。 编码原理 先看这个模板: UCS-4 range (hex.) UTF-8 octet seque
阅读全文
摘要:thread_local变量是C++ 11新引入的一种存储类型。它会影响变量的存储周期(Storage duration),C++中有4种存储周期: automatic static dynamic thread 有且只有thread_local关键字修饰的变量具有线程周期(thread durat
阅读全文
摘要:我整理了一下常用的字符串库函数的内部实现,截自linux内核中的lib/string.c文件,绝对标准的程序,供大家参考。 memset: memcpy: memmove: memcmp: strcpy: strncpy: strcat: strncat: strcmp: strncmp: strc
阅读全文
摘要:这里主要是说序列初始化成员变量时,存在这样的规则: 1. 先进行序列初始化,再进行构造函数函数体内的赋值等操作。 2. 序列初始化,不是简单的自左至右或自右至左,而是根据成员变量的定义顺序来初始化。 测试代码: 结果截图:
阅读全文
摘要:C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通变量和函数,不涉及类;后者主要说明static在类中的作用。 1.面向过程设计中的static1.1静态全局变量在全局变量前,加上关键字static,该变量就被定义成为一个静态全局变量。
阅读全文
摘要:利用pthread_mutex_lock 代码: 上面代码,大意是实现一个临界资源的读写操作,写与读不能冲突。线程创建部分,可参看Linux下的多线程编程 配置make编译文件: 创建src文件夹,将cpp文件放该文件夹下。在src文件夹同级目录下创建CMakeLists.txt文件,内容为: 在终
阅读全文
摘要:看代码: 可以在下面网址进行测试:http://tool.chinaz.com/Tools/unixtime.aspx
阅读全文
摘要:关于daemon,其最简单的用法是: 将上面代码放置程序中,程序执行到这一行,就会自动进入后台运行,不再与终端交互,即终端再输入的参数无效,程序的输出(比如printf等)无效。通常,daemon会用于服务器程序中。 daemon又称守护进程,以下两个链接,我还没消化,先附上: http://blo
阅读全文
摘要:VS2010静态编译生成的.exe可执行文件,可以在其他未安装VS2010的电脑直接运行。 静态编译:就是在编译可执行文件的时候,将可执行文件需要调用的对应动态链接库(.so)中的部分提取出来,链接到可执行文件中去,使可执行文件在运行的时候不依赖动态链接库。 编译方式: 设置: 1、项目->(鼠标右
阅读全文
摘要:下面几个函数的头文件 : <stdio.h> 下面几个函数的头文件 : <stdio.h> fseek int fseek( FILE *stream, long offset, int origin ); 第一个参数stream为文件指针 第二个参数offset为偏移量,正数表示正向偏移,负数表示
阅读全文
摘要:通过函数的定义来区分: 1.strstr: 返回子串出现的第一次位置 char *strstr(const char *haystack, const char *needle) 可见,strstr函数搜索的是一个const char*型的数据,即字符串常量 2.strchr: 返回字符出现的第一次
阅读全文
摘要:线程共享的环境包括:进程代码段、进程的公有数据(利用这些共享的数据,线程很容易的实现相互之间的通讯)、进程打开的文件描述符、信号的处理器、进程的当前目录和进程用户ID与进程组ID。 进程拥有这许多共性的同时,还拥有自己的个性。有了这些个性,线程才能实现并发性。这些个性包括: 1.线程ID 每个线程都
阅读全文
摘要:from:http://www.cnblogs.com/shijingxiang/articles/5389294.html 近日需要将线程池封装成C++类,类名为Threadpool。在类的成员函数exec_task中调用pthread_create去启动线程执行例程thread_rounter。
阅读全文

浙公网安备 33010602011771号