C and C++
tjhyupo505
这个作者很懒,什么都没留下…
展开
-
应用程序初始化失败(0xc0000135)的笨蛋解决方法
【问题】开始用vs.net2003开发了一个命令行的做章软件,其中用到了OpenCV的一些静态库,做完之后在本机和装有vs.net2003的机器上运行正常,但是换到其他机器上运行就出现问题:一打开就提示“应用程序初始化失败(0xc0000135)”,安装 .Net Framwork 1.1 SDK 后问题依旧。在google里面搜索英文资料还是无法解决。【解决方案】下载安装“Microsoft®原创 2005-03-01 15:40:00 · 13401 阅读 · 0 评论 -
内存管理内幕
为什么必须管理内存内存管理是计算机编程最为基本的领域之一。在很多脚本语言中,您不必担心内存是如何管理的,这并不能使得内存管理的重要性有一点点降低。对实际编程来说,理解您的内存管理器的能力与局限性至关重要。在大部分系统语言中,比如 C 和 C++,您必须进行内存管理。本文将介绍手工的、半手工的以及自动的内存管理实践的基本概念。 追溯到在 Apple II 上进行汇编语言编程的时代,那时内存管转载 2007-09-03 16:51:00 · 350 阅读 · 0 评论 -
想成为嵌入式程序员应知道的10个基本问题
C语言测试是招聘嵌入式系统程序员过程中必须而且有效的方法。这些年,我既参加也组织了许多这种测试,在这过程中我意识到这些测试能为面试者和被面试者提供许多有用信息,此外,撇开面试的压力不谈,这种测试也是相当有趣的。 从被面试者的角度来讲,你能了解许多关于出题者或监考者的情况。这个测试只是出题者为显示其对ANSI标准细节的知识而不是技术技巧而设计吗?这是个愚蠢的问题吗?如要你答出某个字符的A转载 2007-09-03 16:42:00 · 383 阅读 · 0 评论 -
typedef研究
typedef研究初学的时候,我们经常听说:typedef就是define。看看下面的程序:define INTEGER int和typedef int INTEGER;乍一看,也对,除了顺序上的差别再来看看下面的程序typedef int INT20[20];这个用define解释就有些牵强了,不过还是可以一定程度上解释的,比如:INT20 a;那么,a就是一个大小为20的整型数组,类似转载 2007-09-03 16:24:00 · 283 阅读 · 0 评论 -
缓冲区溢出
缓冲区是内存中存放数据的地方。在程序试图将数据放到计算机内存中的某一位置,但没有足够空间时会发生缓冲区溢出。 缓冲区是程序运行时计算机内存中的一个连续的块,它保存了给定类型的数据。问题随着动态分配变量而出现。为了不用太多的内存,一个有动态分配变量的程序在程序运行时才决定给他们分配多少内存。如果程序在动态分配缓冲区放入太多的数据会有什么现象?它溢出了,漏到了别的地方。一个缓冲区溢出应用程序使用这个溢转载 2007-09-03 15:47:00 · 318 阅读 · 0 评论 -
atoi() & itoa()函数的内部的实现
/****atox.c - atoi and atol conversion** Copyright (c) 1989-1997, Microsoft Corporation. All rights reserved.**Purpose:* Converts a character string into an int or long.*******************************转载 2007-09-03 15:25:00 · 389 阅读 · 0 评论 -
C++中extern “C”含义深层探索
1.引言 C++语言的创建初衷是“a better C”,但是这并不意味着C++中类似C语言的全局变量和函数所采用的编译和连接方式与C语言完全相同。作为一种欲与C兼容的语言,C++保留了一部分过程式语言的特点(被世人称为“不彻底地面向对象”),因而它可以定义不属于任何类的全局变量和函数。但是,C++毕竟是一种面向对象的程序设计语言,为了支持函数的重载,C++对全局函数的处理方式与C有明显的不转载 2007-09-03 15:19:00 · 306 阅读 · 0 评论 -
volatile修饰符
一般这个修饰符用来告知编译器,被修饰的变量是个“易变的”变量(volatile的本意是“易变的”),防止编译器进行优化。将变量加上volatile修饰,则编译器保证对此变量的读写操作都不会被优化。1、中断服务程序中修改的供其它程序检测的变量需要加volatile;2、多任务环境下各任务间共享的标志应该加volatile;3、存储器映射的硬件寄存器通常也要加volatile说明,因为每次转载 2007-09-03 14:56:00 · 287 阅读 · 0 评论 -
register变量
Register修饰符暗示编译程序相应的变量将将被频繁使用,如果可能的话,应将其保存在CPU的寄存器中,以指加快其存取速度。但是,使用register修饰符有几点限制。 首先,register变量必须是能被CPU寄存器所接受的类型,这通常意味着register变量必须是一个单个的值,并且其长度应小於或等於整型的长度。但是,有些机器的寄存器也能存放浮点数。 其次,因为register转载 2007-09-03 14:54:00 · 540 阅读 · 0 评论 -
C语言6个标准宏
ANSIC标准定义了以下6种可供C语言使用的预定义宏:__LINE__ 在源代码中插入当前源代码行号__FILE__ 在源代码中插入当前源代码文件名__DATE__ 在源代码中插入当前编译日期〔注意和当前系统日期区别开来〕__TIME__ 在源代码中插入当前编译时间〔注意和当前系统时间区别开来〕 __STDC__ 当要求程序严格遵循ANSIC标准时该标识符被赋值为1。__cplusplus标识符_转载 2007-09-03 14:33:00 · 528 阅读 · 0 评论 -
GCC中文手册
GCC中文手册作者:徐明警告本手册页内容摘自GNU C编译器的完整文档,仅限于解释选项的含义. 除非有人自愿维护,否则本手册页不再更新.如果发现手册页和软件之间有所矛盾,请查对Info文件, Info文件是权威文档. 如果我们发觉本手册页的内容由于过时而导致明显的混乱和抱怨时,我们就停止发布它.不可能有其他选择,象更新Info文件同时更新man手册,因为其他维护GNU CC的工作没有留给我们时间做原创 2005-05-24 19:55:00 · 808 阅读 · 0 评论 -
位域
有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位。例如在存放一个开关量时,只有0和1 两种状态, 用一位二进位即可。为了节省存储空间,并使处理简便,C语言又提供了一种数据结构,称为“位域”或“位段”。所谓“位域”是把一个字节中的二进位划分为几个不同的区域, 并说明每个区域的位数。每个域有一个域名,允许在程序中按域名进行操作。 这样就可以把几个不同的对象用一个字节的二进制位转载 2007-10-17 21:22:00 · 433 阅读 · 0 评论