C
clicdl
这个作者很懒,什么都没留下…
展开
-
C语言中static的作用
C语言中static的作用有三条 1. 隐藏 当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。 2. 保持变量内容的持久 存储在静态数据区的变量会在程序刚开始运行时就完成初始化,也是唯一的一次初始化。共有两种变量存储在静态存储区:全局变量和static变量,只不过和全局变量比起来,static可以控制变量的可见范围,说到底static还是用来隐藏的。转载 2012-06-12 17:01:55 · 229 阅读 · 0 评论 -
程序的内存分配
程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、全局区(静态区)(static)—,全转载 2012-05-25 16:23:22 · 245 阅读 · 0 评论 -
strcpy的实现
已知strcpy的原型是char* strcpy(char * strdst, const char*strsrc) 1, 不使用库函数,实现该原型 2. 说明为什么返回char*类型? 实现: 1. #include char* strcpy(char* strDst, const char* strSrc) { assert( (strDst != NULL) &&转载 2012-06-12 17:39:48 · 151 阅读 · 0 评论 -
引用与指针的比较
引用是C++中的概念,初学者容易把引用和指针混淆一起。以下程序中n是m的一个引用(reference),m是被引用物(referent) int m; int &n = m; n相当于m的别名绰号,对n的任何操作就是对m的操作。 例如有人名叫王小毛 他的绰号是“三毛”,说 “三毛” 怎么怎么的,其实就是对王小毛说三道四。所以n既不是m的拷贝,也不是指向m的指针,其实n就是转载 2012-05-26 13:09:08 · 170 阅读 · 0 评论 -
C语言assert的用法
assert宏的原型定义在中,其作用是如果它的条件返回错误,则终止程序执行,原型定义: #include void assert( int expression ); assert的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息, 然后通过调用 abort 来终止程序运行。 请看下面的程序清单badptr.c: #inclu转载 2012-05-25 16:41:25 · 181 阅读 · 0 评论 -
struct 编程注意事项
typedef struct StrA { int memInt; char * memChar; }StrA; int main(int argv, char* args[]) { StrA s1,s2; char ch = 'a'; s1.memInt = 10; s1.memChar = &ch;原创 2012-07-05 11:38:56 · 275 阅读 · 0 评论 -
Linux中的Signal函数
C语言中的抽象函数定义也就是使用了函数指针,这里用signal函数解释一下抽象函数定义的含义和规则。 signal函数定义为: void ( * signal (int signum , void (*handler)(int) ) )(int); 可以这样定义 typedef void(* handler) (int) handler signal(int signum,转载 2012-08-20 09:43:41 · 264 阅读 · 0 评论 -
linux socket下send()&recv()调用
1.send 函数 int send( SOCKET s, const char FAR *buf, int len, int flags ); 不论是客户还是服务器应用程序都用send函数来向TCP连接的另一端发送数据。客户程序一般用send函数向服务器发送请求,而服务器则通常用send函数来向客户程序发送应答。 该函数的第一个参数指定发送端套接字描述符; 第二个参数指明转载 2012-08-20 16:48:34 · 243 阅读 · 0 评论