C/C++
文章平均质量分 77
linquidx
这个作者很懒,什么都没留下…
展开
-
c语言中restrict和const的区别
'Restrict' Pointers One of the new features in the recently approved C standard C99, is the restrict pointer qualifier. This qualifier can be applied to a data pointer to indicate that, during the scope of that pointer declaration, all data accessed thro转载 2010-07-27 09:37:00 · 1220 阅读 · 0 评论 -
解析“extern”
<br /><br />1、 声明外部变量<br />现代编译器一般采用按文件编译的方式,因此在编译时,各个文件中定义的全局变量是<br />互相透明的,也就是说,在编译时,全局变量的可见域限制在文件内部。下面举一个简单的例子。创建一个工程,里面含有A.cpp和B.cpp两个简单的C++源文件:<br />//A.cpp<br />int i;<br /> <br />void main()<br />{<br />}<br /> <br />//B.cpp<br />int i;<br /> <br />转载 2010-10-15 14:26:00 · 372 阅读 · 0 评论 -
协议栈开发一般步骤
一,阅读协议栈相关文档 二,设计协议栈结构 三,编码开发 四,测试与维护原创 2010-10-18 11:39:00 · 3664 阅读 · 0 评论 -
C++中要注意的18点(注意malloc/new)
一、#include “filename.h”和#include 的区别 二、头文件的作用 加强安全检测 三、* , &修饰符的位置 ... 十四、关于malloc/free 和new /delete ....原创 2010-10-14 11:30:00 · 1144 阅读 · 0 评论 -
同步、异步、阻塞、非阻塞 I/O 及 异步I/O实现
<br />同步、异步、阻塞、非阻塞 I/O<br /> <br />第一部分来自:<br />http://blog.csdn.net/historyasamirror/archive/2010/07/31/5778378.aspx<br /> <br />Stevens在文章中一共比较了五种IO Model:<br /> blocking IO<br /> nonblocking IO<br /> IO multiplexing<br /> signal driven IO<br转载 2010-10-11 11:03:00 · 2634 阅读 · 0 评论 -
volatile的作用
一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。下面是volatile变量的几个例子: <br /> 1). 并行设备的硬件寄存器(如:状态寄存器) <br /> 2). 一个中断服务子程序中会访问到的非自动变量(Non-automatic variables) <br /> 3). 多线程应用中被几个任原创 2010-08-03 10:04:00 · 310 阅读 · 0 评论 -
ASC码
ASCII码介绍<br /> 目前计算机中用得最广泛的字符集及其编码,是由美国国家标准局(ANSI)制定的ASCII码(American Standard Code for Information Interchange,美国标准信息交换码),它已被国际标准化组织(ISO)定为国际标准,称为ISO 646标准。适用于所有拉丁文字字母,ASCII码有7位码和8位码两种形式。 因为1位二进制数可以表示(21=)2种状态:0、1;而2位二进制数可以表示(22)=4种状态:00、01、10、11;依次类转载 2010-07-27 14:37:00 · 2306 阅读 · 0 评论 -
缓冲区溢出原理
<br />在当前网络与分布式系统安全中,被广泛利用的50%以上都是缓冲区溢出,其中最著名的例子是1988年利用 fingerd漏洞的蠕虫。而缓冲区溢出中,最为危险的是堆栈溢出,因为入侵者可以利用堆栈溢出,在函数返回时改变返回程序的地址,让其跳转到任意地址, 带来的危害一种是程序崩溃导致拒绝服务,另外一种就是跳转并且执行一段恶意代码,比如得到shell,然后为所欲为。我在这里演示一下堆栈溢出的原理。 <br /><br /> 首先,介绍一下,与堆栈有关的一些概念:动态内存有两种,堆栈(stack),堆转载 2010-07-27 09:57:00 · 387 阅读 · 0 评论 -
解析#pragma指令
<br /><br /><br />在所有的预处理指令中,#Pragma 指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作。#pragma指令对每个编译器给出了一个方法,在保持与C和 C++语言完全兼容的情况下,给出主机或操作系统专有的特征。依据定义,编译指示是机器或操作系统专有的,且对于每个编译器都是不同的。 <br /> 其格式一般为: #Pragma Para <br /> 其中Para 为参数,下面来看一些常用的参数。 <br />(1)message 参转载 2010-07-27 09:50:00 · 320 阅读 · 0 评论 -
C语言之typedef的问题
一篇很好的文章,而且绝对适合于新手,我也是新手,所以我更明白新手需要什么的文章,如果你认真学过C语言的基础,那么这篇文章绝对能看懂,而且获益匪浅。还有什么其他的好文章,也希望大家推荐一下。1. 基本解释 typedef为C语言的关键字,作用是为一种数据类型定义一个新名字。这里的数据类型包括内部数据类型(int,char等)和自定义的数据类型(struct等)。 在编程中使用typedef目的一般有两个,一个是给变量一个易记且意义明确的新名字,另一个是简化一些比较复杂的类型声明。 至于typedef有什转载 2010-07-27 09:44:00 · 433 阅读 · 0 评论 -
const和指针
<br />1·非常量数据的非常量指针 <br /> 定义:int *ptr; <br /> 举例说明: <br /> #include <stdio.h> <br /><br /> //非常量数据的非常量指针指向的内存地址和存储的内容都可以改变! <br /> int main() <br /> { <br /> int a = 100; <br /> int b = 200; <br /> int *ptr = &a ; <br /><br /> *ptr = b; //合法 <br转载 2010-07-27 09:42:00 · 340 阅读 · 0 评论 -
c语言中static 用法总结
<br />一、c程序存储空间布局<br />C程序一直由下列部分组成:<br /> 1)正文段——CPU执行的机器指令部分;一个程序只有一个副本;只读,防止程序由于意外事故而修改自身指令;<br /> 2)初始化数据段(数据段)——在程序中所有赋了初值的全局变量,存放在这里。<br /> 3)非初始化数据段(bss段)——在程序中没有初始化的全局变量;内核将此段初始化为0。<br /> 4)栈——增长方向:自顶向下增长;自动变量以及每次函数调用时所需要保转载 2010-07-27 09:39:00 · 400 阅读 · 0 评论 -
"explicit" 解析
explicit的意图是指明一个函数的调用必须是显式的,副作用才是禁止隐式的类型转化。一般用于防止单参数的构造函数的隐式转化。原创 2010-10-15 16:27:00 · 449 阅读 · 0 评论