C
lanmolei814
这个作者很懒,什么都没留下…
展开
-
memmove 和 memcopy
1.memmove函数原型:void *memmove(void *dest, const void *source, size_t count)返回值说明:返回指向dest的void *指针参数说明:dest,source分别为目标串和源串的首地址。count为要移动的字符的个数函数说明:memmove用于从source拷贝count个字符到dest,如果目标区域转载 2014-05-27 15:20:14 · 425 阅读 · 0 评论 -
bool类型
bool类型 今天在linux下编译了一个简单的C程序,用到了bool类型,习惯性的只写了头文件stdio.h。编译的时候报错:error: syntax error before "fuction",是语法错误。在C Primer Plus第五版(中文版)的46及577页均有对布尔类型的说明,其中577页的说明比较简练明了: C99的布尔类型是_Bool。它是一个转载 2014-12-24 22:57:56 · 777 阅读 · 0 评论 -
指针函数与函数指针的区别
1指针函数: 当一个函数声明其返回值为一个指针时,实际上就是返回一个地址给调用函数,以用于需要指针或地址的表达式中。 格式: 类型说明符 * 函数名(参数) 当然了,由于返回的是一个地址,所以类型说明符一般都是int。 例如:int *GetDate(); int * aaa(int,int); 函数返回的转载 2014-08-17 13:49:50 · 354 阅读 · 0 评论 -
cosnt、const函数、const变量
1.用const 修饰函数的参数如果参数作输出用,不论它是什么数据类型,也不论它采用“指针传递”还是“引用传递”,都不能加const 修饰,否则该参数将失去输出功能。const 只能修饰输入参数:如果输入参数采用“指针传递”,那么加const 修饰可以防止意外地改动该指针,起到保护作用。例如StringCopy 函数:void StringCopy(char *strDesti转载 2014-09-10 22:55:09 · 745 阅读 · 0 评论 -
视觉直观感受 7 种常用的排序算法
1. 快速排序介绍:快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(n log n) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实现出来,且在大部分真实世界的数据,可以决定设计的选择,减少所需时转载 2014-05-27 15:26:11 · 348 阅读 · 0 评论 -
C语言相关Warning。。。解决方案
C语言相关Warning。。。解决方案转载 2014-06-27 11:13:20 · 2531 阅读 · 0 评论 -
__FILE__,__LINE__
前言:我们在写程序的时候,总是或多或少会加入一些printf之类的语句用于输出调试信息,但是printf语句有个很不方便的地方就是当我们需要发布程序的时候要一条一条的把这些语句删除,而一旦需要再次调试的时候,这些语句又不得不一条条的加上,这给我们带来了很大的不便,浪费了我们很多的时间,也造成了调试的效率低下。所以,很多人会选择使用宏定义的方式来输出调试语句。比如,定义一个宏开关:转载 2014-08-17 19:27:45 · 304 阅读 · 0 评论 -
union联合 数据类型 详细说明
union(联合)与struct(结构)有一些相似之处。但两者有本质上的不同。在struct中各成员有各自的内存空间, 一个struct变量的总长度是各成员长度之和。而在union中,各成员共享一段内存空间, 一个union变量的长度等于各成员中最长的长度。应该说明的是, 这里所谓的共享不是指把多个成员同时装入一个union变量内, 而是指该union变量可被赋予任一成员值,但每次只能赋一种值,转载 2014-08-17 19:51:50 · 1439 阅读 · 0 评论 -
strcpy函数的实现
已知strcpy函数的原型是:char *strcpy(char *dst, const char *src);实现strcpy函数解释为什么要返回char *假如考虑dst和src内存重叠的情况,strcpy该怎么实现 1.strcpy的实现代码char * strcpy(char *dst,const char *src) //[1]{ asser转载 2014-08-18 23:28:41 · 482 阅读 · 0 评论 -
C中预编译详解
预处理过程扫描源代码,对其进行初步的转换,产生新的源代码提供给编译器。可见预处理过程先于编译器对源代码进行处理。在C语言中,并没有任何内在的机制来完成如下一些功能:在编译时包含其他源文件、定义宏、根据条件决定编译时是否包含某些代码。要完成这些工作,就需要使用预处理程序。尽管在目前绝大多数编译器都包含了预处理程序,但通常认为它们是独立于编译器的。预处理过程读入源代码,检查包含预处理指令的语句和宏转载 2014-10-29 22:04:22 · 450 阅读 · 0 评论 -
C/C++程序从编译到最终生成可执行文件的过程分析
原文地址:C/C++程序从编译到最终生成可执行文件的过程分析作者:云梦之殇C/C++程序编译步骤 如何生成可执行文件 电子计算机所使用的是由“0”和“1”组成的二进制数,二进制是计算机的语言的基础。计算机发明之初,人们只能降贵纡尊,用计算机的语言去命令计算机干这干那,一句话,就是写出一串串由“0”和“1”组成的指令序列交由计算机执行,这种语言,就是机器语言。想象一下老前辈转载 2014-08-28 23:35:30 · 2942 阅读 · 0 评论 -
static用法小结
static关键字是C, C++中都存在的关键字, 它主要有三种使用方式, 其中前两种只指在C语言中使用, 第三种在C++中使用(C,C++中具体细微操作不尽相同, 本文以C++为准).(1)局部静态变量(2)外部静态变量/函数(3)静态数据成员/成员函数下面就这三种使用方式及注意事项分别说明一、局部静态变量在C/C++中, 局部变量按照存储形式可分为三种auto, s转载 2014-08-17 12:53:55 · 326 阅读 · 0 评论 -
堆 和 栈的 区别(经典)
堆和栈的区别 一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵转载 2014-08-13 17:37:41 · 438 阅读 · 0 评论