摘要: 1、定义宏(debug.h)#ifndef __DEBUG__H#define __DEBUG__H#include #ifdef DEBUG#define debug(fmt,args...) printf (fmt ,##args)#else#define debug(fmt,arg... 阅读全文
posted @ 2014-03-19 21:29 amanlikethis 阅读(2992) 评论(0) 推荐(1)
摘要: arm汇编程序中,R0,R1,R2,R3,R12都是作为中间寄存器,而R4-R11是不能随便使用的,暂时我还不知它们的用途。所以,中间寄存器,在程序运行的开始处与结束的时候值是可以不一样的,也就是说中间寄存器只起到中间的保存作用,所以没必要全局保存。 但是用C语言写的函数可以看到R4-R11在开始处与结束处的值是一样的。倘若C语言的函数中用到了中间变量太多,需要用到R4-R11中的某几个,这时它会在进入函数时把用到的寄存器保存到堆栈中,在结束的时候弹出。 中断程序与普通的函数不一样。中断程序的断点是不确定的,这个时候需要将中间寄存器也保存起来,这样才能在回到断点后能继续正常执行。 阅读全文
posted @ 2014-03-19 11:21 amanlikethis 阅读(307) 评论(0) 推荐(0)
摘要: 转:typedef一、用typedef给结构体一个别名typedef struct tagMyStruct{ int iNum; long lLength;} MyStruct;这语句实际上完成两个操作:1、 定义一个新的结构类型struct tagMyStruct{ int iNum; long lLength; };分析:tagMyStruct称为“tag”,即“标签”,实际上是一个临时名字,struct 关键字和tagMyStruct一起,构成了这个结构类型,不论是否有typedef,这个结构都存在。我们可以用struct tagMyStruct varName来定义变量,但要注意... 阅读全文
posted @ 2014-03-19 10:48 amanlikethis 阅读(1978) 评论(0) 推荐(0)
摘要: 一、typedef用法 typedef常用来定义一个标识符及关键字的别名,它生效是在语言编译过程,但它并不实际分配内存空间。typedef可以增强程序的可读性,以及标识符的灵活性,但它也有“非直观性”的缺点。举例如下:a、先声明一个类型 typedef (int*) pINT;b、使用这个类型pINT a; 在编译的时候,定义了一个指向整型变量的指针。二、define的用法 “#define”为宏定义语句,它在预编译时将所定义的语句展开。举例如下:a、先定义一个宏#define pINT int *b、使用这个宏pINT a; 在预编译阶段,将宏展开为“int *”,在编... 阅读全文
posted @ 2014-03-19 10:38 amanlikethis 阅读(537) 评论(0) 推荐(0)