
C and C++
只写代码不吃饭
思考比编程重要
展开
-
STL,ATL,WTL之间的联系和区别
STL,ATL,WTL之间的联系和区别 一、STL即 Standard Template Library (标准模板库) STL是惠普实验室开发的一系列软件的统称。它是由Alexander Stepanov、Meng Lee和David R Musser在惠普实验室工作时所开发出来的。现在虽说它主要出现在C++中,但在被引入C++之前该技术就已经存在了很长的一段时间。STL的转载 2016-12-26 17:47:25 · 315 阅读 · 0 评论 -
C/C++中const关键字详解
C/C++中const关键字详解 为什么使用const?采用符号常量写出的代码更容易维护;指针常常是边读边移动,而不是边写边移动;许多函数参数是只读不写的。const最常见用途是作为数组的界和switch分情况标号(也可以用枚举符代替),分类如下: 常变量: const 类型说明符 变量名 常引用: const 类型说明符 &引用名 常对象: 类名 const转载 2016-12-26 17:46:07 · 222 阅读 · 0 评论 -
C/C++中作用域详解
C/C++中作用域详解 作用域规则告诉我们一个变量的有效范围,它在哪儿创建,在哪儿销毁(也就是说超出了作用域)。变量的有效作用域从它的定义点开始,到和定义变量之前最邻近的开括号配对的第一个闭括号。也就是说,作用域由变量所在的最近一对括号确定。(1) 全局变量: 全局变量是在所有函数体的外部定义的,程序的所在部分(甚至其它文件中的代码)都可以使用。全局变量不受作用域的影响(转载 2016-12-26 17:44:40 · 377 阅读 · 0 评论 -
C/C++中static关键字详解
C/C++中static关键字详解 静态变量作用范围在一个文件内,程序开始时分配空间,结束时释放空间,默认初始化为0,使用时可以改变其值。 静态变量或静态函数只有本文件内的代码才能访问它,它的名字在其它文件中不可见。用法1:函数内部声明的static变量,可作为对象间的一种通信机制 如果一局部变量被声明为static,那么将只有唯一的一个静态分配的对象,它被用转载 2016-12-26 17:43:43 · 192 阅读 · 0 评论 -
C/C++中extern关键字详解
C/C++中extern关键字详解1 基本解释:extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。此外extern也可用来进行链接指定。 也就是说extern有两个作用,第一个,当它与"C"一起连用时,如: extern "C" void fun(int a, int b);则告诉编译器在编译fun这转载 2016-12-26 17:37:41 · 223 阅读 · 0 评论 -
详解C中volatile关键字
详解C中volatile关键字 volatile提醒编译器它后面所定义的变量随时都有可能改变,因此编译后的程序每次需要存储或读取这个变量的时候,都会直接从变量地址中读取数据。如果没有volatile关键字,则编译器可能优化读取和存储,可能暂时使用寄存器中的值,如果这个变量由别的程序更新了的话,将出现不一致的现象。下面举例说明。在DSP开发中,经常需要等待某个事件的触发,所以经常会写出转载 2016-12-26 17:30:26 · 183 阅读 · 0 评论 -
3. C语言关键字
问:为什么要有关键字?答:关键字是程序设计中代码必须包含的部分,编译器在编译C代码的时候,必然要将C代码进行断句,将代码分割成不同部分,将这些部分分别进行解析和编译。1)非常见:auto、register、volatile、goto2)存储相关:const、extern、register、volatile、static、auto、signed、unsigned3)数据类型:ch原创 2016-12-26 17:29:41 · 246 阅读 · 0 评论 -
getopt和getopt_long函数
平时在写程序时常常需要对命令行参数进行处理,当命令行参数个数较多时,如果按照顺序一个一个定义参数含义很容易造成混乱,而且如果程序只按顺序处理参数的话,一些“可选参数”的功能将很难实现。在Linux中,我们可以使用getopt、getopt_long、getopt_long_only来对这个问题进行处理。[cpp] view plain copy转载 2016-10-26 18:03:24 · 177 阅读 · 0 评论 -
多线程程序里不准使用fork
多线程程序里不准使用fork 鉄則3:マルチスレッドのプログラムでのforkはやめよう准则3:多线程程序里不准使用fork マルチスレッドのプログラムで、「自スレッド以外のスレッドが存在している状態」でfork 何が起きるか能引起什么问题呢? 実例から見てみましょう。次のコードを実行すると、子プロセスは実行開始直後のdoit()呼び出转载 2016-01-08 16:30:26 · 515 阅读 · 0 评论 -
服务器TIME_WAIT和CLOSE_WAIT详解和解决办法
来自:http://blog.youkuaiyun.com/shootyou/article/details/6622226 昨天解决了一个HttpClient调用错误导致的服务器异常,具体过程如下:http://blog.youkuaiyun.com/shootyou/article/details/6615051里头的分析过程有提到,通过查看服务器网络状态检测到服务器有大量的CLO转载 2016-01-08 15:56:58 · 251 阅读 · 0 评论 -
Linux C Socket编程原理及简单实例
Linux C Socket编程原理及简单实例部分转自:http://goodcandle.cnblogs.com/archive/2005/12/10/294652.aspx1. 什么是TCP/IP、UDP?2. Socket在哪里呢?3. Socket是什么呢?4. 有很多的框架,为什么还在从Socket开始?5. Linux C转载 2016-01-08 15:54:08 · 374 阅读 · 0 评论 -
2. C语言编译,链接
一、 预编译预编译主要是处理预编译指令。当我们无法判定宏定义是否正确或头文件是否包含正确时,可以看预编译后的文件来确定。二、 编译编译就是把预处理后的文件进行一系列词法分析、语法分析、语义分析及优化后生成汇编代码文件。gcc -s hello.i -o hello.s三、 汇编汇编是将汇编代码转变成机器可以执行的指令。四、 链接链原创 2016-12-12 16:06:33 · 202 阅读 · 0 评论 -
我的C
1.变量2.操作符3.指针4.数据类型5.函数6.宏7.编译运行原理8.杂项9.附录1.变量16位机整型 32位机整型浮点型字符型结构体共用体指针空类型 short 2int 2long 4short 2int 4原创 2017-02-22 15:15:59 · 380 阅读 · 0 评论