C/C++
tiany524
狗一样的学习,绅士一样的玩!
展开
-
inlin 函数讲解 --转
本文介绍了GCC和C99标准中inline使用上的不同之处。inline属性在使用的时候,要注意以下两点:inline关键字在GCC参考文档中仅有对其使用在函数定义(Definition)上的描述,而没有提到其是否能用于函数声明(Declare)。 从inline的作用来看,其放置于函数声明中应当也是毫无作用的:inline只会影响函数在translation unit(可以简单理解为C源码文转载 2009-08-14 14:08:00 · 1501 阅读 · 0 评论 -
C/C++笔试题1--小测试共十个
51CTO的自测题 值得一做 第 1 题What does the following program print?【中国某著名计算机金融软件公司2005年12月面试题】#include using namespace std;int vac=3;int main(){int vac=10;::vac++;coutcoutreturn原创 2011-06-12 22:47:00 · 1804 阅读 · 0 评论 -
检测系统的大小端模式--利用union
<br />1 大小端的定义<br />大端模式 字数据的高字节存储在低地址, 低字节存储在高地址<br />小端模式 字数据的高字节存储在高地址, 低字节存储在低地址<br /> <br />2 利用 union 判定<br />union check{<br /> int i;<br /> char ch;<br />}<br />在32位机中, int 4 bytes, char 1 byte<br />i = 1 时<br />大端模式<br />原创 2011-04-24 16:37:00 · 1527 阅读 · 1 评论 -
循环位移-C
0x20是十进制的32,你是多少位的类型就换成多少就好了,这里是int。原理也很简单,两边一来一去然后或一下把空出来的0补全...循环左移:#define CROL(value, bits) ((value > (0x20 - bits)))循环右移:原创 2011-09-07 21:52:02 · 1490 阅读 · 0 评论 -
C语言内存分配函数
三个函数的声明分别是: void* realloc(void* ptr, unsigned newsize);void* malloc(unsigned size); void* calloc(size_t nelem, size_t elsize);都在原创 2011-09-11 13:43:13 · 807 阅读 · 0 评论 -
C语言中的realloc函数动态分配内存
虽然现在说这个。。多半没有什么意思。。但我的确在很长的一段时间不知道他的工作原理。。所以随便记录下。。它的原型是:view plainprint?extern void * realloc(void * __ptr,size_t _转载 2011-09-11 19:12:48 · 806 阅读 · 0 评论 -
二分查找法
二分查找算法的前置条件是,一个已经排序好的序列(在本篇文章中为了说明问题的方便,假设这个序列是升序排列的),这样在查找所要查找的元素时,首先与序列中间的元素进行比较,如果大于这个元素,就在当前序列的后半部分继续查找,如果小于这个元素,就在当前序列的前半部分继续查找,直到找到相同的转载 2011-09-12 14:09:41 · 596 阅读 · 0 评论 -
kmalloc vmalloc malloc区别
http://blog.csdn.net/computer055maxi/article/details/5879056kmalloc()和vmalloc()介绍kmalloc()用于申请较小的、连续的物理内存1. 以字节为单位进行分配,在中2. vo转载 2011-09-11 13:47:49 · 1286 阅读 · 0 评论 -
Google方程式
字符组成的等式:WWWDOT - GOOGLE = DOTCOM,每个字符代表一个0-9之间的数字,WWWDOT、GOOGLE和DOTCOM都是合法的数字,不能以0开头。请找出一组字符和数字的对应关系,使它们互相替换,并且替换后的数字能够满足等式。这个字符等式是Google公司能力倾向测试实验室的一道题目,这种题目主要考察人的逻辑推导能力和短期记忆能力,通常棋下的好的人解决这类问题会更得心转载 2012-03-28 16:50:43 · 957 阅读 · 0 评论 -
很酷的C语言技巧--【编译时断言】
http://blog.jobbole.com/16035/http://www.endofunctor.org/~rpearl/blog/cool-c-tricks.html编译时断言这其实是使用C语言的宏来实现的非常有“创意”的一个功能。有些时候,特别是在进行内核编程时,在编译时就能够进行条件检查的断言,而不是在运行时进行,这非常有用。不幸的是,C99标准还不支转载 2012-03-29 21:16:05 · 2455 阅读 · 0 评论 -
C/C++程序的内存分配与使用笔记
C/C++程序的内存分配与使用笔记 一、C/C++程序的内存分配一个C/C++程序占用的内存区一般可以分为如下五种:①全局/静态数据区②常量数据区③代码区④堆⑤栈显然代码存放在代码区,而程序的数据则根据数据种类的不同放在不同的存储区中,在C/C++中,数据主要有几种不同的分类:常量和变量、全局数据和局部数据,静态数据与非静态数据,原创 2011-06-12 20:26:00 · 1515 阅读 · 0 评论 -
setjmp与longjmp学习笔记
setjmp与longjmp学习笔记摘自http://hi.baidu.com/yeqiwei/blog/item/abd187017297b4d6277fb58e.htmlhttp://blog.codingnow.com/2010/05/setjmp.html 一、基础介绍 头文件:#includesetjmp.h> 原型: int setjmp转载 2011-06-13 13:19:00 · 1198 阅读 · 0 评论 -
从一道笔试题谈算法优化(上)
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/lanphaday/archive/2008/12/18/3547776.aspx 声明:本文最初发表于《电脑编程技巧与维护》2006年第5期,版本所有,如蒙转载,敬请连此声明一起转载,否则追究侵权责任。从一道笔试题谈算法优化(上)作者:赖勇浩(http://blog.csdn.net/lanphada转载 2009-12-05 16:25:00 · 512 阅读 · 0 评论 -
fprintf() 函数简介
总的来说printf是标准输出流的输出函数,用来向屏幕这样的标准输出设备输出,而fprintf则是向文件输出,将输出的内容输出到硬盘上的文件或是相当于文件的设备上 printf是有缓冲的输出,fprintf没有缓冲 fprintf的具体定义如下 Definition and Usage定义和用法The fprintf() function writes a for原创 2009-12-17 15:04:00 · 5845 阅读 · 0 评论 -
图像镜像变换
图像镜像变换 图像的镜像(Mirror)变换分为两种:一种是水平镜像,另一种是垂直镜像。图像的镜像变换不改变图像的形状。图像的水平镜像操作是以原图像的垂直中轴线为中心,将图像分为左右两部分镜像对称变换;图像的垂直镜像操作是以原图像的水平中轴线为中心,将图像分为上下两部分进行对称变换。如图5-11所示: (a)原始图像 (b)水平镜像转载 2010-03-10 04:03:00 · 8874 阅读 · 2 评论 -
一次遍历完成单链表的反转
<br />一次遍历完成单链表的反转<br />void ListReverse(LinkList &L){ if ( L->next==NULL || L->next->next==NULL) return;//空表或者只有一个元素,无需反转 LinkList pA,pB,pC; pA = pB =pC = NULL; while ( L->next->next!=NULL && L->next->next->next!=NULL) { p原创 2010-06-01 17:01:00 · 1050 阅读 · 0 评论 -
VC++ 6.0下OpenGL开发环境配置
<br />本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/hzl877243276/archive/2010/09/18/5893192.aspx<br /> <br /> <br />OpenGL官方网站(英文)<br />http://www.opengl.org<br />下面我将对Windows下的OpenGL编程进行简单介绍。 <br />第一步:选择一个编译环境 <br />现在Windows系统的主流编译环境有Visual Studio,Broland转载 2011-03-13 13:05:00 · 965 阅读 · 0 评论 -
malloc/free和new/delete的区别
<br />http://blog.csdn.net/chance_wang/archive/2007/05/14/1609081.aspx<br /> <br />malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。<br />它们都可用于申请动态内存和释放内存。<br /><br />对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数。由于malloc/free是库函数而转载 2011-03-17 21:12:00 · 473 阅读 · 0 评论 -
C语言结构体对齐问题详解
C语言结构体对齐问题详解测试环境32位机 WinXP:编译器VC6(MS cl.exe ) 和 mingw32-gcc-4.5.2 1 结构体数据对齐(没有#pragma pack()宏定义)结构体对齐可以总结为三个基本原则①数据成员对齐规则: 结构体的数据成员中,第一个成员从offset为0的地址开始,以后每一个成员存储的起始位置为该成员大小的整数倍(在win32中int为32bit也即4字节对齐)②结构体作为成员: 如果一个结构体1作为另一个结构体2的数据成员,则原创 2011-04-01 20:33:00 · 8471 阅读 · 0 评论 -
第三届华为编程大赛【C语言试题】
编程题(共3题,第一题20分,第二题30分,第三题50分,共100分。请上机编写程序,按题目要求提交文件。本试题采用自动测试用例进行评分,测试用例不对考生公开,凡不满足提交要求导致不能运行或用例不通过,不予评分)。1、 排序算法(20分)l 问题描述将给定的无序整数数组降序排列后输出,输入的无序数组长度为N,类型为unsigned intl 要求实现函数void DscSort (const int InputArray[], unsigned int n, int OutputArray[])【输入原创 2011-05-30 20:47:00 · 7915 阅读 · 9 评论 -
位运算的巧用
一 、位运算实例 1:用一个表达式,判断一个数X是否是2的N次方(2,4,8,16.....),不可用循环语句。X:2,4,8,16转化成二进制是10,100,1000,10000。如果减1则变成01,011,0111,01111。两者做按位与运算,结果如果为0,则X是2的N次方。 2:统计一个整数的二进制中1的个数int CountNumberOfOne(int num原创 2011-06-11 19:36:00 · 1829 阅读 · 0 评论 -
让你不再害怕指针
(0)让你不再害怕指针--复杂类型说明要了解指针,多多少少会出现一些比较复杂的类型,所以我先介绍一下如何完全理解一个复杂类型,要理解复杂类型其实很简单,一个类型里会出现很多运算符,他们也像普通的表达式一样,有优先级,其优先级和运算优先级一样,所以我总结了一下其原则:从变量名处起,根据运算符优先级结合,一步一步分析.下面让我们先从简单的类型开始慢慢分析吧:转载 2014-06-11 22:08:37 · 939 阅读 · 0 评论