淡水求咸

博客园已经停止更新,请移步 http://lovecjh.com/

导航

2012年1月2日

C/C++之sizeof与strlen的区别

摘要: 今天讨论下我在C++过程中遇到一个关于sizeof和strlen区别的问题。在Window编程中有如下一段程序:case WM_PAINT:{ HDC hDc; PAINTSTRUCT ps; hDc=BeginPaint(hwnd,&ps); //BeginPaint只能在WM_PAINT下使用 TextOut(hDc,0,0,"my program",strlen("my program")); EndPaint(hwnd,&ps); break;}在其中用到strlen("my program"),我想将strl 阅读全文

posted @ 2012-01-02 21:16 深圳彦祖 阅读(5113) 评论(2) 推荐(2) 编辑

C/C++之回调函数

摘要: 今天讨论下C/C++中的回调函数。在理解“回调函数”之前,首先讨论下函数指针的概念。函数指针(1)概念:指针是一个变量,是用来指向内存地址的。一个程序运行时,所有和运行相关的物件都是需要加载到内存中,这就决定了程序运行时的任何物件都可以用指针来指向它。函数是存放在内存代码区域内的,它们同样有地址,因此同样可以用指针来存取函数,把这种指向函数入口地址的指针称为函数指针。(2)先来看一个Hello World程序:int main(int argc,char* argv[]){ printf("Hello World!\n"); return 0;} 然后,采用函数调用的形式来 阅读全文

posted @ 2012-01-02 15:12 深圳彦祖 阅读(89610) 评论(22) 推荐(63) 编辑

2012年1月1日

C/C++内联函数和extern "C"问题讨论

摘要: 今天讨论下C/C++的几个觉问题。内联(inline)函数 提到内联函数,先看下面两个程序,程序的执行结界都是为了得到两个值相加之和://程序1int add(int x,int y){ return x+y;}int main(int argc,char* argv[]){ int a=1,b=2,c; c=add(a,b); //通过调用函数的形式得到相加结果 return 0;}//程序2int main(int argc,int argv[]){ int a=1,b=2,c; c=a+b; //直接计算... 阅读全文

posted @ 2012-01-01 20:36 深圳彦祖 阅读(1098) 评论(0) 推荐(0) 编辑

C/C++预处理

摘要: 今天来讨论下C/C++中的预处理。预处理(1)概念:预处理是指在进行编译的第一遍扫描(词法扫描和语法分析)之前所作的工作。预处理的编程语言一个重要功能,它由预处理程序负责完成。当对一个源文件进行编译时,系统将自动引用预处理程序对源程序中的预处理部分进行处理,处理完毕自动进入对源程序的编译。处理预处理语句的程序称为预处理程序,也就是常说的预处理器,它包含在编译器中。预处理程序首先读源文件。预处理的输出是“翻译单元”,它是存放在内存听临时文件。编译器接受预处理的输出,并把源代码化成包含机器语言指令的目标文件。 预处理器的作用是通过预处理的内建功能对一个资源进行等价替换。(2)常见的预处理:文件包. 阅读全文

posted @ 2012-01-01 16:37 深圳彦祖 阅读(651) 评论(0) 推荐(0) 编辑

2011年12月31日

C/C++版数据结构之排序算法

摘要: 今天讨论下数据结构中的排序算法。排序算法的相关知识:(1)排序的概念:所谓排序就是要整理文件中的记录,使之按关键字递增(或递减)次序排列起来。(2)稳定的排序方法:在待排序的文件中,若存在多个关键字相同的记录,经过排序后这些具有相同关键字的记录之间的相对次序保持不变,该排序方法是稳定的。相反,如果发生改变,这种排序方法不稳定。(3)排序算法的分类(分为5类):插入排序、选择排序、交换排序、归并排序和分配排序。(4)排序算法两个基本操作:<1>比较关键字的大小。 <2>改变指向记录的指针或移动记录本身。具体的排序方法:插入排序<1>插入排序(Insertion 阅读全文

posted @ 2011-12-31 20:20 深圳彦祖 阅读(2957) 评论(0) 推荐(1) 编辑