C语言学习
cwcwj3069
嵌入式软件工程师。
展开
-
c代码编译器工作原理
C语言的编译链接过程要把我们编写的一个c程序(源代码)转换成可以在硬件上运行的程序(可执行代码),需要进行编译和链接。编译就是把文本形式源代码翻译为机器语言形式的目标文件的过程。链接是把目标文件、操作系统的启动代码和用到的库文件进行组织形成最终生成可执行代码的过程。过程图解如下: 从图上可以看到,整个代码的编译过程分为编译和链接两个过程,编译对应图中的大括号括起的部分,其余则为链翻译 2012-09-05 20:33:09 · 4111 阅读 · 0 评论 -
嵌入式C语言程序的运行
嵌入式C语言程序的运行2011-08-16 15:05 我们做C语言中这么多年,都知道这样一句话,C语言代码形成可执行程序,需要经过编译->汇编->链接三个阶段。背都背熟了,但是到底啥意思,每一步都会产生一些什么东西,很多人都不是太了解。今天就详细的来说说这个问题: 先看下图,在这个图中,我详细的描述了,整个过程及中间的一些步骤: 代码段,只读数转载 2012-09-05 21:02:52 · 1370 阅读 · 0 评论 -
函数指针,指针函数,
一函数指针】 在程序运行中,函数代码是程序的算法指令部分,它们和数组一样也占用存储空间,都有相应的地址。可以使用指针变量指向数组的首地址,也可以使用指针变量指向函数代码的首地址,指向函数代码首地址的指针变量称为函数指针。1.函数指针定义函数类型 (*指针变量名)(形参列表);“函数类型”说明函数的返回类型,由于“()”的优先级高于“*”,所以指针变量名外的括号必原创 2012-09-07 18:16:36 · 876 阅读 · 0 评论 -
链表面试题
1.已知链表的头结点head,写一个函数把这个链表逆序[cpp] view plaincopyprint?void List::reverse() { list_node * p = head; list_node * q = p->next; list_node * r = NULL; wh转载 2012-09-19 11:50:20 · 736 阅读 · 0 评论 -
FIFO的实现
我的代码实现FIFO;#include#includetypedef struct {int *prt;int heap;int tal;int size;} fifo ;fifo buff;char tab[]="hello world" ;void fifo_init(){ buff.prt=(int*)malloc(size原创 2012-09-19 11:52:15 · 968 阅读 · 0 评论 -
指针数组和数组指针的使用
指针数组:array of pointers,即用于存储指针的数组,也就是数组元素都是指针数组指针:a pointer to an array,即指向数组的指针还要注意的是他们用法的区别,下面举例说明。int* a[4] 指针数组 表示:数组a中的元素都为int型指针 元素表示:*a[原创 2012-10-28 13:33:13 · 635 阅读 · 0 评论 -
针数组-数组指针-函数指针的使用 好像不错的资料
一 :关于指针和堆的内存分配 先来介绍一下指针 : 指针一种类型,理论上来说它包含其他变量的地址,因此有的书上也叫它:地址变量。既然指针是一个类型,是类型就有大小,在达内的服务器上或者普通的PC机上,都是4个字节大小,里边只是存储了一个变量的地址而已。不管什么类型的指针,char * ,int * ,int (*) ,string * ,float * ,都是说明了本指针所指向的地址空间是什么转载 2012-10-28 13:38:04 · 670 阅读 · 0 评论