多余的就不说了,都明白,为了方便操作,我们常常会用到类似于LED1 = 1来点亮一个灯,此处LED1就是一个脚位,它当然不是系统自带,一般都是我们宏定义一个脚位。 昨天刚接触IAR这个编程器,想用类似的方法来操作,但是类似51内核操作(keil中写法) sbit LED1 PA0 ; STVD 中的 _Bool PA0_OUT @PA_ODR:0; 这是头有点大,一方面想着操作能...
分类:
其他好文 时间:
2014-05-09 15:11:42
阅读次数:
282
8.2.3 运行ELF格式的应用程序
首先我们需要提供一些与ELF格式有关的宏定义。
代码8-7
#define ELFCLASSNONE 0 #define ELFCLASS32 1 #define ELFCLASS64 2 #define CHECK_ELF_CLASS(p) ((p)->e_ident[4]) #define...
分类:
其他好文 时间:
2014-05-08 00:29:22
阅读次数:
465
TARGET_IPHONE_SIMULATOR和TARGET_OS_IPHONE 是苹果的两个宏定义,
在真机sdk中位于ios->usr/include/targetconditionals.h中,
在模拟器sdk中位于simulator->usr/include/targetconditionals.h中
(笔者此时使用的xcode版本为5.1,sdk版本是7.1)
仔细看其模...
分类:
移动开发 时间:
2014-05-07 23:02:07
阅读次数:
450
1.在程序的某些地方加上简短的注释会增加程序的可读性。
2.在书写格式上,所有的case需要对齐,每个case后的语句要有一定的缩进并对齐,以便容易的看出各个分支的条件依据与对应执行的操作。
允许将想通操作的case及对应的常量表达式连续排列,对应的操作的语句组和break只在最后一个case出出现。
3.一般情况下头文件中包括变量、宏定义、枚举、结构和函数接口的声明,而C文件中...
分类:
编程语言 时间:
2014-05-07 08:30:49
阅读次数:
359
此为C语言的基础,和Linux内核关系并不大,不过还是作为补充知识点介绍一下好了。宏非常频繁的用于执行简单的计算,比如在两个表达式中寻找其中较大的一个:
#define MAX(a,b) ((a)>(b)?(a):(b))
如果使用函数来实现的话就比较慢,宏的话在编译的时候就完成工作,所以使用宏远比使用函数调用效率来的可观。和使用函数相比,使用宏的不利之处就在于每次使用宏的时候,一个宏定义代码...
分类:
其他好文 时间:
2014-05-07 04:59:27
阅读次数:
270
1 预处理1#define1.不能用 #define 定义注释,因为注释先于预处理被处理。2
.宏定义表达式1,注意展开后结合顺序,尽量多加括号2,常量定义时注意是否溢出1#define SEX_YEAR (60*60*24*365)UL3,注意空格2
#pragma#pragma message参...
分类:
其他好文 时间:
2014-05-04 11:48:14
阅读次数:
221
1.C语言的基本数据类型直接与底层硬件相对应。2#define
是可能出现问题12345#define a(y) a_ex(y)a(x)被扩展为 a_ex(x)#define a (y) a_ex(y)a(x)被扩展为
(y) a_ex(y)(x)#define宏的用法1.简单宏定义1#define...
分类:
其他好文 时间:
2014-05-02 15:12:33
阅读次数:
253
在memory.c里面,遇到一个宏定义,如下:
#define CODE_SPACE(addr) ((((addr)+4095)&~4095) start_code + current->end_code)
看的第一眼,不知道,第二眼,还是不知道,纠结了半天还是不知道。
睡了一晚,今天早上再看,嘿嘿,居然看懂了。。。
这个宏定义用于判断给定的addr线...
分类:
系统相关 时间:
2014-05-01 17:54:09
阅读次数:
516
在驱动编程学习中,往往需要通过DbgPrint或者KdPrint来输出调试信息,对于Check版本,KdPrint只是DbgPrint的一个宏定义,而对于Free版本,KdPrint将被优化掉。这些输出信息可以通过DebugView对内核的监控来看到。KdPrintis
identical to t...
分类:
数据库 时间:
2014-05-01 11:08:32
阅读次数:
453
define宏定义中的#,##,@#及\符号在#define中,标准只定义了#和##两种操作。#用来把参数转换成字符串,##则用来连接两个前后两个参数,把它们变成一个字符串。1、#(stringizing)字符串化操作符。其作用是:将宏定义中的传入参数名转换成用一对双引号括起来参数名字符串。其只能用...
分类:
其他好文 时间:
2014-05-01 07:48:42
阅读次数:
466