c/c++
守枫竹清
这个作者很懒,什么都没留下…
展开
-
编程能力层次模型
转载:http://blog.jobbole.com/84556/前言程序员的编程技能随着经验的积累,会逐步提高。我认为编程能力可以分为一些层次。下面通过两个维度展开编程能力层次模型的讨论。一个维度是编程技能层次,另一个维度是领域知识层次。编程技能层次编程技能层次,指的程序员设计和编写程序的能力。这是程序员的根本。0段—非程序员:初学转载 2015-03-10 13:38:08 · 1917 阅读 · 0 评论 -
C++静态库与动态库
C++静态库与动态库这次分享的宗旨是——让大家学会创建与使用静态库、动态库,知道静态库与动态库的区别,知道使用的时候如何选择。这里不深入介绍静态库、动态库的底层格式,内存布局等,有兴趣的同学,推荐一本书《程序员的自我修养——链接、装载与库》。什么是库库是写好的现有的,成熟的,可以复用的代码。现实中每个程序都要依赖很多基础的底层库,不可能每个人的代码都从零开始,因此库的存在意义非转载 2016-07-16 18:37:31 · 506 阅读 · 0 评论 -
c++中的.hpp文件
c++中的.hpp文件 hpp,其实质就是将.cpp的实现代码混入.h头文件当中,定义与实现都包含在同一文件,则该类的调用者只需要include该cpp文件即可,无需再 将cpp加入到project中进行编译。而实现代码将直接编译到调用者的obj文件中,不再生成单独的obj,采用hpp将大幅度减少调用 project中的cpp文件数与编译次数,也不用再发布烦人的lib与dll,转载 2016-07-10 12:08:04 · 30524 阅读 · 3 评论 -
windows消息机制(MFC)
windows消息机制(MFC)消息分类与消息队列Windows中,消息使用统一的结构体(MSG)来存放信息,其中message表明消息的具体的类型,而wParam,lParam是其最灵活的两个变量,为不同的消息类型时,存放数据的含义也不一样。time表示产生消息的时间,pt表示产生消息时鼠标的位置。按照类型,Windows将消息分为:(0) 消息ID范转载 2015-12-07 13:42:51 · 510 阅读 · 0 评论 -
GDB调试汇总
GDB调试汇总 无论是多么优秀的程序员,都难以保证自己在编写代码时不会出现任何错误,因此调试是软件开发过程中的一个必不可少的组成部分。 当程序完成编译之后,它很可能无法正常运行,或者会彻底崩溃,或者不能实现预期的功能。此时如何通过调试找到问题的症结所在,就变成了摆在开发人员面前最严峻的问题。 通常说来,软件转载 2015-12-30 15:06:38 · 1457 阅读 · 0 评论 -
使用make命令编译项目文件入门
使用make命令编译项目文件入门目录:一、make命令的运行过程二、基本gcc编译命令三、简单Makefile文件的编写四、实例一、make命令的运行过程 在shell的提示符号下,若输入"make",则它会到目前的目录下找寻Makefile这个文件.然后依照Makefile中所记录的步骤一步一步的来执行.在我们写程序的时候,如果事先就把compile转载 2015-12-15 09:19:31 · 19856 阅读 · 0 评论 -
define宏定义中的#,##,@#及\符号
1、# (stringizing)字符串化操作符。其作用是:将宏定义中的传入参数名转换成用一对双引号括起来参数名字符串。其只能用于有传入参数的宏定义中,且必须置于宏定义体中的参数名前。如:#define example(instr) printf("the input string is:\t%s\n",#instr)#define example1(instr) #ins转载 2015-12-12 14:49:43 · 803 阅读 · 0 评论 -
堆和栈的区别
堆和栈的区别一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3、全局区(静态转载 2015-10-22 15:28:23 · 478 阅读 · 0 评论 -
C++, Java和C#的编译过程解析
1.1.1 摘要我们知道计算机不能直接理解高级语言,它只能理解机器语言,所以我们必须要把高级语言翻译成机器语言,这样计算机才能执行高级语言编写的程序,在接下来的博文中,我们将介绍非托管和托管语音的编译过程。1.1.2正文非托管环境的编译过程(C/C++)纯C/C++的程序通常运行在一个非托管环境中,类是由头文件(.h)和实现文件(.cpp)组成,每个类形成了一个转载 2015-11-06 15:14:32 · 661 阅读 · 0 评论 -
静态连接库与动态链接库
一、动态链接库的概念 动态链接库(Dynamic Link Library,缩写为DLL)是一个可以被其它应用程序共享的程序模块,其中封装了一些可以被共享的例程和资源。 动态链接库文件的扩展名一般是dll,也有可能是drv、sys和fon,它和可执行文件(exe)非常类似,区别在于DLL中虽然包含了可执行代码却不能 单独执行,而应由Windows应用程序直接或间接调用。转载 2015-08-15 17:26:03 · 1042 阅读 · 0 评论 -
C++中重载、重写(覆盖)和隐藏的区别实例分析
这篇文章主要介绍了C++中重载、重写(覆盖)和隐藏的区别,是C++面向对象程序设计非常重要的概念,需要的朋友可以参考下函数重载:在C++程序中,可以将语义、功能相似的几个函数用同一个名字表示,即函数重载。重载的实现:几个同名的重载函数仍然是不同的函数,它们是如何区分的呢?我们自然想到函数接口的两个要素:参数与返回值。如果同名函数的参数不同(包括类型、顺序转载 2015-05-06 18:34:31 · 3706 阅读 · 0 评论 -
Vim技巧分享:C语言设置
转载:http://www.linuxidc.com/Linux/2012-12/77124.htm修改vimrc如下:1、配置文件的位置 在目录 /etc/ 下面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效。而在每个用户的主目录下,都可以自己建立私有的配置文件,命名为:“.vimrc”。例如,/root目录下,通常已经存在一个.vimrc转载 2015-04-21 15:40:42 · 1536 阅读 · 0 评论 -
dll和ocx的区别
dll和ocx的区别ActiveX,OLE是基于COM的一种应用,其文件后缀一般以dll和ocx结尾;ocx作为一种特殊的dll文件,具有一定的用户界面和事件响应,而dll文件只是方法和属性的集合。一、关于DLL的介绍 DLL,动态链接库,Dynamic Link Library的缩写,是一个包含函数和数据的模块集合,可以被其它应用程序共享的程序模块。DLL作为共转载 2015-01-16 15:27:09 · 1121 阅读 · 0 评论 -
C语言函数指针基础
本文写的非常详细,因为我想为初学者建立一个意识模型,来帮助他们理解函数指针的语法和基础。如果你不讨厌事无巨细,请尽情阅读吧。函数指针虽然在语法上让人有些迷惑,但不失为一种有趣而强大的工具。本文将从C语言函数指针的基础开始介绍,再结合一些简单的用法和关于函数名称和地址的趣闻。在最后,本文给出一种简单的方式来看待函数指针,让你对其用法有一个更清晰的理解。 函数指针和一个简单的函转载 2015-03-10 13:07:48 · 493 阅读 · 0 评论 -
Cmake的介绍和使用 Cmake实践
Cmake的介绍和使用 Cmake实践Cmake优点:1. 开发源代码,实用类BSD许可发布。2. 跨平台,并可以生成native编译配置文件,在linux/unix平台,生成makefile,在mac平台可以生成xcode,在windows平台可以生成msvc工程的配置文件。3. 能够管理大型项目4. 简转载 2016-12-03 11:38:31 · 3302 阅读 · 0 评论