C/C++
文章平均质量分 77
bomboyv66
NULL
展开
-
Understand inline
inline 函数在调用时不仅仅可以避免函数调用的成本。在典型情况下,编译器的优化是为了一段连续的没有函数调用的代码设计的,所以当你 inline化一个函数,你可能就使得编译器能够对函数体实行上下文相关的特殊优化。大多数编译器都不会对"outlined"函数调用实行这样的优化。然而inline 函数背后的思想是用函数本体代替每一处对这个函数的调用,这样可能会增加你的目标代码的大小。在有限内存的机器转载 2008-08-07 14:45:00 · 413 阅读 · 0 评论 -
Character Pointers and Character Arrays
Example:char *GetString1 (void){char *p = "test";return p;}char *GetString2 (void){char p[] = "test";return p;}int main (){char *str1 = NULL;char *str2 = NULL;str1 = GetString1();str2 = GetString2();p原创 2008-08-21 13:41:00 · 483 阅读 · 0 评论 -
Cross call between C and C++
/* C程序中如何调用C++;C++程序中如何调用C */extern是C/C++语言中表明函数和全局变量作用范围(可见性)的关键字,该关键字告诉编译器,其声明的函数和变量可以在本模块或其它模块中使用。通常,在模块的头文件中对本模块提供给其它模块引用的函数和全局变量以关键字extern声明。例如,如果模块B欲引用该模块A中定义的全局变量和函数时只需包含模块A的头文件即可。这样,模块B中调用模块A转载 2008-08-21 13:31:00 · 517 阅读 · 0 评论 -
Big/Little endian, union, bitfield
Example:union s {struct x {unsigned int x1:2;unsigned int x2:3;unsigned int x3:3;}x;char y;};int main (){union s test;test.y = 100;printf("x1: %d/n", test.x.x1);printf("x2: %d/n", test.x.x2);printf("原创 2008-08-21 13:48:00 · 1081 阅读 · 0 评论 -
Memory partition in C program
/* Memory Layout of a C Program */正文段。C P U执行的机器指令部分。通常,正文段是可共享的,所以即使是经常执行的程序(如文本编辑程序、C编译程序、s h e l l等)在存储器中也只需有一个副本,另外,正文段常常是只读的,以防止程序由于意外事故而修改其自身的指令。 初始化的数据段。通常将此段称为数据段,它包含了程序中需赋初值的变量。初始化的全原创 2008-08-21 13:35:00 · 608 阅读 · 0 评论 -
Automatic variables in GNU Make
$@ 工作目标的文件名$% 档案文件成员(archive member)结构中的文件名元素$第一个必要条件的文件名$? 时间戳在工作目标(的时间戳)之后的所有必要条件,并以空格隔开这些必要条件$^ 所有必要条件的文件名,并以空格隔开这些文件名。这份列表已删掉重复的文件名$+ 代表所有必要条件的文件名,并以空格隔开。不过,包含重复的文件名$* 工作目标的主文件名。一个文件名称有两部分组成:主文件名和原创 2008-08-21 10:58:00 · 503 阅读 · 0 评论 -
Converting string to/from integer
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Converting String Into int Using atoiBefore I leave the string section, Id like to talk about two useful function转载 2008-08-21 10:47:00 · 1009 阅读 · 0 评论 -
Callback function
/* 注意:函数指针在只声明了变量类型还未赋值(创建指针变量)前就使用,会导致空指针错误 */一篇不错的关于回调机制的文章:http://www.ibm.com/developerworks/cn/linux/l-callback/index.html什么是回调函数?简而言之,回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它原创 2008-08-21 10:40:00 · 656 阅读 · 0 评论 -
How to use (data_member | member function) pointers in class
1. 首先普通函数指针不能被赋值为成员函数的地址,即使返回类型和参数完全匹配例如:下面是的pfi是一个普通函数指针,它没有参数,返回类型为int:int (*pfi)();若有两个全局函数,HeightIs()和WidthIs():int HeightIs();int WidthIs();则下面的的赋值操作是合法的:pfi = HeightIs;pfi = WidthIs; 但类Screen也转载 2008-08-07 15:03:00 · 787 阅读 · 1 评论 -
C++ - 成员初始化探讨
/* discuss how to initialize static and const/& member in C++ class*/// const member must be initialized in member-initilization list// static member must be initialized in source file globall原创 2008-10-29 17:40:00 · 1594 阅读 · 0 评论