
C/C++编程
Alexcrazy
这个作者很懒,什么都没留下…
展开
-
C和C++之间有一点区别
一、注释 C++的注释允许采取两种形式。第一种是传统C采用的,另一种新采用的则是//。同时允许这两种注释风格,程序员可以选用他们所喜欢的形式。大部分的程序员,包括C++的设计者更喜欢//的注释风格。在小段代码的注释,//显然比方便很多。然而,在注释掉很大段代码的时候,就要比//方便了。 设计者认为,这种注释只是C++增加的一个次要的功能。增加//的注释风格,会导致一些C与C++转载 2011-12-05 09:40:22 · 2524 阅读 · 0 评论 -
eclipse调试开源代码方法
源于本人对linux的环境相当感兴趣,有一定的基础,打算从事相关方面的开发工作。于是打算摆脱只在WINDOWS调试程序的习惯,首先想到了GDB,但这个不是很方便,听说有CGDB也可以边调试边查看源代码,但没有试过,经与大家交流,选择了eclipse来调试代码,eclipse是一个集成了GDB的集成开发环境。想结合音视频、多媒体及网络等开源代码来研究,扎实自己的C/C++等方面的知识。原创 2012-05-21 20:36:39 · 1615 阅读 · 0 评论 -
GDB调试技巧
GDB 概述————GDB 是 GNU 开源组织发布的一个强大的 UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像 VC 、 BCB 等 IDE 的调试,但如果你是在 UNIX 平台下做软件,你会发现 GDB 这个调试工具有比 VC 、 BCB 的图形化调试器更强大的功能。所谓 “ 寸有所长,尺有所短 ” 就是这个道理。一般来说, GDB 主要转载 2012-05-21 20:35:36 · 974 阅读 · 0 评论 -
Configure,Makefile.am, Makefile.in, Makefile文件之间关系
1.autoscan (autoconf): 扫描源代码以搜寻普通的可移植性问题,比如检查编译器,库,头文件等,生成文件configure.scan,它是configure.ac的一个雏形。 your source files --> [autoscan*] --> [configure.scan] --> configure.ac2.aclocal (automake):根据已经安转载 2012-05-20 18:07:24 · 5244 阅读 · 0 评论 -
关于栈和堆的区别
堆和栈的区别 一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束转载 2012-06-04 10:25:50 · 645 阅读 · 0 评论 -
静态连接总结
目前的链接器都采用2步链接法,链接过程可采用脚本来控制 1,空间与地址分配, 2,符号解析与重定位一空间与地址分配有2种方式,按序叠加如图1,相似段合并如图2。目前一般采用第二种方法。事实上,我们在这里谈到的空间分配只关注于虚拟地址空间分配。原创 2012-06-03 16:26:45 · 1654 阅读 · 0 评论 -
第六章、可执行文件的装载与进程 (总结)
6.1 进程虚拟地址空间可能通过判断C语言程序中指针所占的空间来计算虚拟地址空间的大小,一般C语言指针大小的倍数与虚拟空间的位数相同,如32位平台下的指针为32位。 6.2装载的方式1) 覆盖装入(overlay)2)页映射(paging) :是虚拟存储机制的一部分,现在用的较多。有一些算法来调度哪些页被装载物理内存。如FIFO(先进先出)、LUR(最少使用)等。6原创 2012-06-04 10:33:34 · 995 阅读 · 0 评论 -
restrict 关键字的介绍
'Restrict' PointersOne of the new features in the recently approved C standard C99, is the restrict pointer qualifier. This qualifier can be applied to a data pointer to indicate that, during the sc转载 2012-05-15 14:44:14 · 812 阅读 · 0 评论 -
源程序到最终可执行文件过程分析
从源程序到最终可执行文件的4个步骤:1)预编译。 主要处理那些源代码文件中以“#”开始的预编译指令,如#include \ #include define等。删除所有的注释。经过预编译后的.i文件不包含任何宏定义。2)编译。其实可以用ccl来完成。包括词法分析\ 语法分析\ 中间语言生成\ 目标代码生成与优化。3)汇编。可以用as来完成。负责将汇编代码生成机器代码的转换工作。4原创 2012-05-31 15:12:36 · 1053 阅读 · 0 评论 -
错误:'nasm' 不是内部或外部命令,也不是可运行的程序
1>正在执行自定义生成步骤1>'nasm' 不是内部或外部命令,也不是可运行的程序1>或批处理文件。1>Project : error PRJ0019: 某个工具从以下位置返回了错误代码:"正在执行自定义生成步骤"1>生成日志保存在“file://e:\JM代码\x264_2011_09_12\x264-060805-vc6\build\win32\Debug\BuildLog.h原创 2012-01-07 12:20:11 · 10459 阅读 · 0 评论 -
GNU C的一大特色__attribute__机制介绍
1. __attribute__ ((packed)) 的作用就是告诉编译器取消结构在编译过程中的优化对齐,按照实际占用字节数进行对齐,是GCC特有的语法。这个功能是跟操作系统没关系,跟编译器有关,gcc编译器不是紧凑模式的,我在windows下,用vc的编译器也不是紧凑的,用tc的编译器就是紧凑的。例如:在TC下:struct my{ char ch; int a;} sizeof(int)转载 2011-12-13 09:24:00 · 1974 阅读 · 0 评论 -
双冒号(::)用法
2.双冒号(::)用法 (1)表示“域操作符” 例:声明了一个类a,类a里声明了一个成员函数voidf(),但没有在类的声明里给出f的定义,那么在类外定义f时, 就要写成voida::f(),表示这个f()函数是类a的成员函数。 (2)直接用在全局函数前,表示是全局函数 例:在vc里,你可以在调用api函数里,在api函数名前加:: (3)表示引用成员函数及变量转载 2011-12-06 08:37:43 · 4976 阅读 · 1 评论 -
C中函数传入参数不确定问题
va_list: This type is used as a parameter for the macros defined incstdarg to retrieve the additional arguments of a function.Each compiler may implement this type in its own way. It is only inten原创 2012-05-24 16:52:13 · 1706 阅读 · 0 评论