随笔分类 -  C++/C/C#

摘要:ARM汇编伪指令 宏的用法详解(MACRO MEND)(转载)http://yxmyifeng.blog.163.com/blog/static/1297897822010099444933/宏是一段独立的程序代码,它是通过伪指令定义的,在程序中使用宏指令即可调用宏。当程序被汇编时,汇编程序将对每个调用进行展开,用宏定义取代源程序中的宏指令。MACRO、MEND语法格式:MACRO[$ label] macroname{ $ parameter1, $ parameter,……}指令序列MENDMACRO伪操作标识宏定义的开始,MEND标识宏定义的结束。用MACRO及MEND定义一段代码,称为 阅读全文
posted @ 2012-04-07 13:23 Jacob Lui 阅读(2090) 评论(0) 推荐(0)
摘要:C语言之extern声明辨析http://yxmyifeng.blog.163.com/blog/static/129789782201001893621293/C语言之extern声明辨析 1 基本解释 extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。 另外,extern也可用来进行链接指定。 2 问题:extern 变量 在一个源文件里定义了一个数组:char a[6]; 在另外一个文件里用下列语句进行了声明:extern char *a; 请问,这样可以吗? 答案与分析: 1)、不可以,程序运... 阅读全文
posted @ 2012-04-07 13:21 Jacob Lui 阅读(219) 评论(0) 推荐(0)
摘要:上次谈到由于stm32官方库和iar ew arm 的不断升级, 多出配置都发生了 变化,1在使用 ewarm 6.30 升级stm32 stdlib 3.5 出现了这个错误Error(Pe47) declaration is incompatible with "__interwork__softfp unsigned long __get_PSP(void)",”declaration “ 说明有文件中定义冲突。查了一下,3.5 中cmsis 分开成了两个文件夹,一个是core 一个device, 这个正是答案。具体操作可以参考这份文档,http://www.st.co 阅读全文
posted @ 2012-03-09 11:56 Jacob Lui 阅读(943) 评论(0) 推荐(0)
摘要:define 是嵌入式程序里的常用的宏定义。熟悉使用它将大大方便程序编写和调试。define 的本质是直接替换。1.简单的define定义#define MAXTIME 1000编译器在工作是将MAXTIME替换为1000。这个类似变量的用法,可以用于更改程序中的经常改,数量多的变量或供别人使用的程序。2.define的“函数定义”#define max(x,y) (x)>(y)?(x):(y);在一般使用的时候是没有问题的,但是如果遇到如:c * Add(a,b) * d的时候就会出现问题,代数式的本意是a+b然后去和c,d相乘,但是因为使用了define(它只是一个简单的替换),所以 阅读全文
posted @ 2011-12-14 17:18 Jacob Lui 阅读(306) 评论(0) 推荐(0)