共 9 篇文章 |
|
线程属性pthread Posix线程中的线程属性pthread_attr_t主要包括scope属性、detach属性、堆栈地址、堆栈大小、优先级。为了设置这些属性,POSIX定义了一系列属性设置函数,包括pthread_attr_init()、pthread_attr_destroy()和与各个属性相关的pthread_attr_getXXX/pthread_attr_setXXX函数。头文件: <pthread.h>函数原型: int pthr... 阅27 转0 评0 公众公开 16-05-15 16:37 |
数据对齐 posix对齐。虽然动机是多种多样的,但最常见的是直接块I/O的缓存的对齐或者其它的软件对硬件的交互,因此,POSIX 1003.1d提供一个叫做posix_memalign( )的函数:调用posix_memalign( )成功时会返回size字节的动态内存,并且这块内存的地址是alignment的倍数。由posix_memalign( )获得的内存通过free( )释放。if (ret) { fprintf (s... 阅27 转0 评0 公众公开 16-04-09 19:58 |
比如定义一个叫 REAL 的浮点类型,在目标平台一上,让它表示最高精度的类型为: typedef long double REAL; 在不支持 long double 的平台二上,改为: typedef double REAL; 在连 double 都不支持的平台三上,改为: typedef float REAL; 也就是说,当跨平台时,只要改下 typedef 本身就行,不用对其他源码做任何修改。const... 阅538 转0 评0 公众公开 16-03-11 00:34 |
typedef #define 区别1、typedef的用法 在C/C++语言中,typedef常用来定义一个标识符及关键字的别名,它是语言编译过程的一部分,但它并不实际分配内存空间,实例像: typedef int INT; typedef int ARRAY[10]; typedef (int*) pINT; typedef可以增强程序的可读性,以及标识符的灵活性,但它也有“非直观性”等缺点。 阅42 转0 评0 公众公开 16-03-11 00:20 |
#ifdef #if defined 区别#if defined 可以组成复杂的预编译条件,比如#if defined (ABC) &&defined (XYZ)#endif#if defined (ABC) || MAX >12#endif而#ifdef 就不能用上面的用法,也就是说,当你要判断单个宏是否定义时#ifdef和#if defined 效果是一样的,但是当你要判断复杂的条件时,只能用#if defined#ifndef #if !defined 同... 阅90 转0 评0 公众公开 16-03-10 23:41 |
vector容器提供了很多接口,在下面的表中列出vector的成员函数和操作。很多时候我们不必要知道vector里面有多少数据,vector里面的数据是动态分配的,使用push_back()的一系列分配空间常常决定于文件或一些数据源。vector能够非常容易地添加数据,也能很方便地取出数据,同样vector提供了erase(),pop_back(),clear()来删除数据,当你删除数据... 阅10 转0 评0 公众公开 16-03-03 17:11 |
这是在编译的时候确定的。除了内存外,编译器还做了宏替换,检查类型安全,上面一说的,类的“访问权限”、“成员数据”、“成员函数”这几个概念的“作用域”等等的语法检查,其他的我就不知道了。运行期执行的函数则没有这个优点,它和普通的函数没有区别,不同点在于它在编译的时候运行。四 模板的运用 1 stl 模板是在编译期运行的,所以程... 阅436 转0 评0 公众公开 16-02-19 18:48 |
[cpp] view plain copy bool StrOverlap( char *strA, char *strB, int cnt, char *strC ) { int sizeA = (int)strlen( strA );9.请编写能直接实现int atoi(const char * pstr)函数功能的代码。int div(const int x, const int y)[cpp] view plain copy int Div( const int x, const int y ) { if( x < y ) return 0;状态转换... 阅195 转1 评0 公众公开 16-02-19 18:47 |