C_Analysis_Deeply
文章平均质量分 75
Greens_Ren
这个作者很懒,什么都没留下…
展开
-
void及void指针介绍
void类型指针(如void *p)所指向的数据类型不是确定的,或者说,可以是任何类型的。void类型指针中的数据不能访问,如果非要访问的话,可以通过显式转换将void类型指针转换为与所指向的数据类型相符的类型。1.任何类型的指针都可以显式转换为void类型,且不会丢失数据。如以下程序:2.void类型指针可以通过显式转换为具有更小或相同存储对齐限制的指针,但数据可能失真。所谓“相同存储对齐限制”是指void类型指针所指的数据在内存中所占的长度与显式转换后的指针所指的数据在内存中所占的长度相等,比如以上原创 2014-03-08 10:59:40 · 1578 阅读 · 0 评论 -
C语言—字符串(字符数组)
1、C语言中的字符串# 从概念上讲,C语言中没有字符串数据类型# 在C语言中使用字符数组来模拟字符串# C语言中的字符串是以‘\0’结束的字符数组# C语言中的字符串可以分配于栈空间,堆空间或者只读存储区#include #include int main(){ char s1[] = {'H', 'e', 'l', 'l', 'o'};//单纯的字符数组,不是原创 2014-04-10 10:55:51 · 1408 阅读 · 0 评论 -
C语言深度剖析—指针和数组(上)
一、指针基础变量只是一段存储空间的别名,那么是不是必须通过这个别名才可以使用这段存储空间?答案是否定的。我们还可以通过指针也就是地址的方式来访问某段存储空间。示例代码:#include int main(){ int i = 5; int* p = &i; printf("%d, %08X\n", i, p);原创 2014-04-09 14:28:40 · 1127 阅读 · 0 评论 -
C语言中内存的管理
一、动态内存分配与释放1、为什么要使用动态内存分配,下面看一个实例,关于超市中购买记录的一段程序#include #include struct Product { char name[128]; int price;};struct Product pro[1000]; //1000有限制,所以要使用动态内存分配 struct Prod原创 2014-04-27 12:00:05 · 1237 阅读 · 0 评论 -
C语言中的数据类型-数据存储-条件语句
一、基本数据类型分析什么是数据类型1、数据类型可以理解为固定内存大小的别名2、数据类型是创建变量的模子类型的本质:char 是1byte的别名,short是2byte的别名,int是4byte的别名。char c在内存中创建了一个1byte的变量c,short s在内存中创建了一个2byte的变量s,int i在内存中创建了一个4byte的变量i。变量的本质:原创 2014-03-22 11:31:54 · 1588 阅读 · 0 评论 -
C语言中数据类型转换
原地址:http://blog.csdn.net/hanchaoman/article/details/7827031 隐式类型转换分三种,即算术转换、赋值转换和输出转换。1.算术转换 进行算术运算(加、减、乘、除、取余以及符号运算)时,不同类型数招必须转换成同 一类型的数据才能运算,算术转换原则为: 整型提升:对于所有比int小的类型,包括cha转载 2014-03-23 18:42:40 · 1654 阅读 · 0 评论 -
C语言的存储区
在c语言中,存储区可以分成代码区,全局区,常量区,栈,堆;如下图所示: 全局区 :主要存储全局变量和static变量。常量区:存放常量的地方。堆:用户申请的内存区,用编译器提供的函数new或malloc申请。要注意内存泄露的问题栈:系统自动给局部变量分配的内存区。 extern关键词:extern修饰全局变量glovar时,表明glov转载 2014-06-07 16:02:46 · 1452 阅读 · 0 评论 -
C语言编译原理介绍
c语言编译原理图1、预处理指令:gcc -E file.c -o hello.i# 删除所有的注释,以空格代替# 将所有的#define删除,并且展开所有的宏定义# 处理条件编译指令#if,#ifdef,#elif,#else,#endif 指令 用途 # 空指令,无任何效果 #include 包含一个原创 2014-04-02 20:46:01 · 2958 阅读 · 0 评论 -
位置无关代码分析
位置无关代码(PIC)的分析理解--转载首先,需要理解加载域与运行域的概念。加载域是代码存放的地址,运行域是代码运行时的地址。为什么会产生这2个概念?这2个概念的实质意义又是什么呢?在一些场合,一些代码并不在储存这部分代码的地址上执行地址,比如说,放在norflash中的代码可能最终是放在RAM中运行,那么中norflash中的地址就是加载域,而在RAM中的地址就是运行域。转载 2014-06-13 16:25:26 · 530 阅读 · 0 评论 -
malloc与calloc、realloc
malloc与calloc,realloc的区别malloc与calloc,realloc都可以用来动态分配内存空间,但两者也存在着一些区别: 1.Malloc函数有一个参数,即要分配的内存空间的大小2.calloc有两个参数,分别为元素的数目和每个元素的大小,这两个参数的乘积就是要分配的内存空间的大小3.如果分配内存空间成功,则两者都返回分配的内存空间的首地址函数转载 2014-06-16 22:42:42 · 520 阅读 · 0 评论 -
C语言中结构体详解
C语言中结构体详解时间:2013-02-20 16:06来源:凌阳教育 作者:larran 点击:1030次 大家都知道学习嵌入式开发,首先要学的一门重要的语言就是c语言,所以大家在c语言学习中一定要谨慎对待,每个环节都要扎实学好。今天由我们熟知的凌阳嵌入式培训讲师东哥为大家带来关于:C语言中结构体详解,希望能帮助到更多的嵌入式学习者。 1 概述转载 2014-06-17 14:37:14 · 936 阅读 · 0 评论 -
fopen、fread、fwrite文件操作
函数名称: fopen函数原型: FILE *fopen(char * filename,char * mode);函数功能: 以mode指定的方式打开名为filename的文件函数返回: 成功,返回一个文件指针(文件信息区的起始地址),否则返回0参数说明: filename-文件名称,mode-打开模式:转载 2014-06-19 16:04:59 · 765 阅读 · 0 评论 -
C语言——指针与数组(下)
一、指针数组与数组指针的分析思考:# 下面这些声明合法吗?int array[5];int matrix[3][3];int * pA = array;int * pM = matrix;array代表数组首元素的地址,而matrix代表一维地址,也就是数组第一行的行地址。array和&array的地址值相同,但意义不同,在指针运算时表现不同,例如,array +原创 2014-04-10 13:40:37 · 1303 阅读 · 0 评论 -
C语言中memset-memcpy(memmove memccpy)-strcpy函数源代码
一、概述二、函数实现三、函数使用领域和技巧原创 2014-03-22 16:57:36 · 1486 阅读 · 0 评论 -
const和volatile的详解
const作为修饰符表示其修饰变量不可以被本程序修改,其在编译过程中起作用。我们也可以再程序运行的时候改变const修饰的变量。volatile表示程序编译过程中不可以对其修饰的变量进行优化,每次使用的时候都要到内存中去取。下面是一个小程序:使用的编译工具是Dev-C++#include #include int main(){ const int cc =原创 2014-03-22 21:22:50 · 1236 阅读 · 0 评论 -
指针与地址的区别
在C语言和C++中,指针是非常重要的一部分,程序的执行过程中可以通过指针来找到要操作的数据和可执行的函数代码。很多人就明白指针和地址是有区别的,但是很少有人能说清楚这种区别。 指针总共可以分为两种,函数指针和数据指针。而指针和地址最大的区别就是指针是有类型的,地址是没有类型的。我们当然可以通过绝对地址的方式找到函数和数据,但是地址是没有类型的,不能对地址进行算术操作,在涉及诸如数组等操作原创 2014-03-14 11:57:14 · 3990 阅读 · 0 评论 -
C语言中-const,volatile-struct,union-enum,typedef,define
一、const和volatile分析1、const修饰变量# 在c语言中const修饰的变量时只读的,其本质还是变量# const修饰的变量会在内存占用空间# 本质上const只对编译器有用,在运行时无用原来const不是真的常量2、const修饰数组# 在C语言中const修饰的数组是只读的#const修饰的数组空间不可以被改变const int A[原创 2014-03-22 21:57:25 · 2020 阅读 · 0 评论 -
C语言中运算符优先级
一共有十五个优先级: 1 () [] . ->2 ! ~ -(负号) ++ -- &(取变量地址)* (type)(强制类型) sizeof 3 * / %4 + - 5 >> 6 > >= 7 == != 8 & 9 ^ 10 | 11 &&12 ||13 ?原创 2014-03-29 09:51:44 · 997 阅读 · 0 评论 -
C语言中的符号的技巧
一、注释符号C语言中的符号:奖项:Best of show功能:处理三种文件格式(PGM、PPM和ASCII Art)的降采样工具作者:Google华裔工程师Don Hsi-Yun Yang注释符号,下面哪些注释是正确的。#include int main(){ int/*...*/i; // 注释由空格来代替,所以是正确的原创 2014-03-28 10:50:46 · 3611 阅读 · 0 评论 -
C语言中的函数
一、认清函数的真相1、函数的由来程序 = 数据 + 算法C程序 = 数据 + 函数2、函数的意义模块化程序设计C语言中的模块化3、面向过程的程序设计# 面向过程是一种以过程为中心的编程思想# 首先将复杂问题分解为一个个容易解决的问题# 分解过后的问题可以按照步骤一步步完成# 函数是面向过程在C语言中的体现# 解决问题的每一个步骤可以原创 2014-04-28 21:20:08 · 1549 阅读 · 0 评论 -
C语言的inline
本文介绍了GCC和C99标准中inline使用上的不同之处。inline属性在使用的时候,要注意以下两点:inline关键字在GCC参考文档中仅有对其使用在函数定义(Definition)上的描述,而没有提到其是否能用于函数声明(Declare)。从inline的作用来看,其放置于函数声明中应当也是毫无作用的:inline只会影响函数在translation unit(可以简单理解为C源码原创 2014-03-20 13:28:54 · 941 阅读 · 0 评论 -
C语言中static的使用方法
原地址:http://blog.163.com/sunshine_linting/blog/static/44893323201191294825184/全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。全局变量本身就是静态存储方式, 静态全局变量当然也是静态存储方式。这两者在存储方式上并无不同。这两者的区别虽在于非静态全局变量的作用域是整个源程序, 当一个源程序由原创 2014-03-20 12:43:56 · 1401 阅读 · 0 评论 -
C++中的inline函数
原地址:http://blog.sina.com.cn/s/blog_90e888f50100zgo2.html在C++中,为了解决一些频繁调用的小涵数大量消耗栈空间或者是叫栈内存的问题,特别的引入了inline修饰符,表示为内联涵数。 可能说到这里,很多人还不明白什么是栈空间,其实栈空间就是指放置程序的局部数据也就是函数内数据的内存空间,在系统下,栈空间是有限的,如果频繁大原创 2014-03-20 13:22:45 · 1036 阅读 · 0 评论 -
柔性数组-经典介绍
在讲述柔性数组成员之前,首先要介绍一下不完整类型(incomplete type)。不完整类型是这样一种类型,它缺乏足够的信息例如长度去描述一个完整的对象。 6.2.5 Types incomplete types (types that describe objects but lack information needed to determine their sizes).原创 2014-03-14 10:41:16 · 605 阅读 · 0 评论 -
笑傲面试和简历编写
一、笑傲面试1、指针运算#include void main(){ int TestArray[5][5] = { {11,12,13,14,15}, {16,17,18,19,20}, {21,22,23,24,25},原创 2014-04-30 21:10:22 · 1600 阅读 · 1 评论 -
头文件中函数定义的缺点
原地址:http://blog.csdn.net/fushiqianxun/article/details/7961552 同一个函数、变量可以在不同的c文件中根据需要有多个声明,但只能有一个定义。这就决定了如果在头文件中定义函数或变量,则该头文件只能使用一次,不能被别的c文件使用,也即限制了最好只有一个c文件,因为别的c文件已经不能再使用这些头文件;而头文件的真正用处是实现“接口”,使原创 2014-03-20 14:02:00 · 928 阅读 · 0 评论 -
静态数组与动态数组
摘要的重要性是不言而喻的,每次发文章我都很纠结如何写出一个有特色的摘要来,能够以最为简短的文字向读者描述出我所要表达的东西。但是常常出现的问题是,摘要写得太简短了,读者看了不清楚文章究竟要讲啥;摘要写得稍微长点的话自然能够描述清楚所要表达的东西,但是却也出现了另外一个问题,就是读者看到大段的文字描述,觉得枯燥无味,直接二话不说给文章判了个“死刑”,导致这种情况下愿意真正的花时间看完摘要的读者屈指可转载 2014-06-21 10:30:34 · 1441 阅读 · 1 评论