
C
lopng
生而知之者上也学 而知之者次也 困而学之又其次也 困而不学民斯为下矣
展开
-
C中restrict关键字
补充一个APUE中的内容,即是restrict修饰符。下面一段引自Sun公司的技术文档: restrict Objects referenced through a restrict-qualified pointer have a special association with that pointer. All references to that object must转载 2013-09-06 18:23:41 · 956 阅读 · 0 评论 -
【精辟】socket阻塞与非阻塞,同步与异步,select,pool,epool
socket阻塞与非阻塞,同步与异步 作者:huangguisu 1. 概念理解 在进行网络编程时,我们常常见到同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)四种调用方式: 同步: 所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回。也就是必须一件一件事做,等前一件做转载 2013-09-07 23:13:40 · 584 阅读 · 0 评论 -
字符指针和字符数组的区别
char *str = "This is a string."; 是对字符指针进行初始化。此时,字符指针指向的是一个字符串常量的首地址,即指向字符串的首地址。 这里要注意字符指针与字符数组之间的区别。例如,有说明语句: char string[ ]="This is a string."; 此时,string是字符数组,它存放了一个字符串。 字符指针str与字符数组string原创 2013-09-14 10:22:07 · 587 阅读 · 0 评论 -
堆和栈的区别 (转贴)
本人作也!因非常经典,所以收归旗下,与众人阅之!原作者不祥! 堆和栈的区别 一、预备知识—程序的内存分配 一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结转载 2013-09-18 10:44:17 · 498 阅读 · 0 评论 -
makefile 中各种赋值符号的区别
在Makefile中我们经常看到 = := ?= +=这几个赋值运算符,那么他们有什么区别呢?我们来做个简单的实验 新建一个Makefile,内容为: ifdef DEFINE_VRE VRE = “Hello World!” else endif ifeq ($(OPT),define) VRE ?= “Hello World! First!” endif原创 2013-10-09 12:12:24 · 1114 阅读 · 0 评论 -
字符串赋值给字符指针(char *a="hello")的正确理解方式
对于语句 char *a="hello"; 对于这个声明方式,会造成的误解是:声明了一个字符指针(它会指向一个位置),将“字符串”赋值给 指针表达式"*a"所指向的地址。但正解是:声明了一个字符指针后,并用字符串常量的第一个字符的地址赋值给指针变量a。 即正确顺序是:1.分配内存给字符指针;2.分配内存给字符串;3.将字符串首地址赋值给字符指针;转载 2014-03-29 19:13:01 · 1313 阅读 · 0 评论