随笔分类 - C/C++
摘要:1.什么是静态库 静态库类似windows中的静态lib 关于windows中的静态lib,可参考 Windows动态链接库DLL 特点:包含函数代码声明和实现,链接后所有代码都嵌入到宿主程序中。 只在编译时使用,执行时不再需要该静态库。 2.静态库编写示例如下:addvec.c void addv
阅读全文
摘要:几篇较全面的位域相关的文章: http://www.uplook.cn/blog/9/93362/ C/C++位域(Bit-fields)之我见 C中的位域与大小端问题 内存对齐全攻略–涉及位域的内存对齐原则 本文主要对位域相关知识进行了一下梳理,参考如下: C语言中的位域 史上最全的C位域总结2
阅读全文
摘要:扩充C语言在编译的时候按照C++编译器进行统一处理,使得C++代码能够调用C编译生成的中间代码。 由于C语言的头文件可能被不同类型的编译器读取,因此写C语言的头文件必须慎重。 我们编写代码,经常需要c和c++混合使用,为了使 C 代码和 C++ 代码保持互相兼容的过程调用接口,需要在 C++ 代码里
阅读全文
摘要:一、什么是可变参数 在C语言编程中有时会遇到一些参数个数可变的函数,例如printf(),scanf()函数,其函数原型为: int printf(const char* format,…) int scanf(const char *format,…) 它除了有一个参数format固定以外,后面跟
阅读全文
摘要:参考:http://blog.yangyubo.com/2009/06/04/best-cpp-singleton-pattern/ 索引 静态化并不是单例 (Singleton) 模式 饿汉模式 懒汉模式 (堆栈-粗糙版) 懒汉模式 (局部静态变量-最佳版) 范例代码和注意事项 (最优实现) 扩展
阅读全文
摘要:一、typedef作用简介 * 我们可以使用typedef关键字为各种数据类型定义一个新名字(别名)。 在第3、第4、第6行分别给int、unsigned int、float起了个别名,然后在main函数中使用别名定义变量,用来跟原来的基本类型是完全一样的。输出结果: 当然,给类型起别名后,原来的i
阅读全文
摘要:各种软件对于性能的需求可能会有很大的区别,但是很多应用程序都有非常严格的性能需求,这一点并不奇怪。电影播放器就是一个很好的例子:如果一个电影播放器只能以所需要速度的 75% 来播放电影,那么它几乎就没什么用处了。 其他应用程序(例如视频编码)如果是耗时非常长的操作,最好以 “批处理” 任务的方式运行
阅读全文
摘要:左值、右值 在C++11中所有的值必属于左值、右值两者之一,右值又可以细分为纯右值、将亡值。在C++11中可以取地址的、有名字的就是左值,反之,不能取地址的、没有名字的就是右值(将亡值或纯右值)。举个例子,int a = b+c, a 就是左值,其有变量名为a,通过&a可以获取该变量的地址;表达式b
阅读全文
摘要:最近在浏览朋友写的代码,发现有一个细节非常值得学习,在这里将代码贴出来简单分享一下: pthread_create的定义如下: 新建线程从void *(*start_routine)(void *)函数的地址开始运行,该函数直邮一个无类型指针参数arg。如果需要向start_routine函数传递的
阅读全文
摘要:参考:http://blog.chinaunix.net/uid-20120277-id-5760985.html C语言所有复杂的指针声明,都是由各种声明嵌套构成的。如何解读复杂指针声明呢?右左法则是一个既著名又常用的方法。不过,右左 法则其实并不是C标 准里面的内容,它是从C标准的声明规定中归纳
阅读全文
摘要:参考:http://blog.csdn.net/starstar1992/article/details/52756387 linux下错误的捕获:errno和strerror的使用 经常在调用linux 系统api 的时候会出现一些错误,比方说使用open() write() creat()之类的
阅读全文
摘要:我们希望某个对象(内存空间)不被修改的通常做法是什么?声明该空间的const类型,但是这样真的可以吗?是不是的,由于const空间对象的指针是可以付给一个非const值指针的。所以这仍然无法不让该空间被修改。 const int a=10; int * b=&a; 虽然,编译器会报警告“ 警告:初始
阅读全文
摘要:<!--done--> 目录索引: 一、LibCurl基本编程框架 二、一些基本的函数 三、curl_easy_setopt函数部分选项介绍 四、curl_easy_perform 函数说明(error 状态码) 五、libcurl使用的HTTP消息头六、获取http应答头信息 七、多线程问题 八、
阅读全文
摘要:一、真空类 class CNull { }; 长度:1 内存结构: ?? 评注:长度其实为0,这个字节作为内容没有意义,可能每次都不一样。 二、空类 class CNull2 { public: CNull2(){printf("Construct/n");} ~CNull2(){printf("D
阅读全文
摘要:一、冒泡排序 思想:重复走访过要排序的序列,一次比较两个元素,如果他们的顺序错误就将他们进行交换,一次冒上来的是最小的,其次是第二小。 时间复杂度:O(n^2) 空间复杂度:O(1) 稳定性:稳定 /** * 冒泡排序 * @param disOrderArray * @return */ publ
阅读全文
摘要:Clang 比 GCC 编译器的优势: 编译速度更快 编译产出更小 出错提示更友 好,比如 clang 在编译过程可以直接指出相对简单的出错位置以及它 “ 认为 ” 正确的方式 。 内置有静态分析工具,可以对代码进行静态分析 (clang—analyze) 。这也是 gcc 做不到的 。 专注,因为
阅读全文
摘要:首先编写了第一个C++程序,Hello,world! #include <iostream> using namespace std; void main() ...{ cout << "Hello,world!" <<endl; return; } 用命令:GCC -o test test.cpp
阅读全文
摘要:strcpy提供了字符串的复制。即strcpy只用于字符串复制,并且它不仅复制字符串内容之外,还会复制字符串的结束符。 已知strcpy函数的原型是:char* strcpy(char* dest, const char* src);memcpy提供了一般内存的复制。即memcpy对于需要复制的内容
阅读全文
摘要:文章最后本人做了一幅图,一看就明白了,这个问题网上讲的不少,但是都没有把问题说透。 32位机器上各种数据类型的长度如下:char:1(有符号无符号同) short:2(有符号无符号同) int:4(有符号无符号同) long:4(有符号无符号同) float:4 double:8 一、概念 对齐跟数
阅读全文
摘要:char str[20]="0123456789"; int a=strlen(str); /*a=10;strlen 计算字符串的长度,以\0'为字符串结束标记。 int b=sizeof(str); /*b=20;sizeof 计算的则是分配的数组str[20] 所占的内存空间的大小,不受里面存
阅读全文

浙公网安备 33010602011771号