目录 文件包含 #include #include_next #import 宏定义 #define #undef 条件编译 #if #else #endif #if define #ifdef #ifndef #elif 错误、警告处理 ...
分类:
移动开发 时间:
2015-01-20 15:22:42
阅读次数:
514
#define是C语言提供的宏定义命令,能够为程序员提供一定方便,在一定程度上提高程序的执行效率。
在程序中,有效范围为宏定义之后的本源文件结束,在此文件范围内有效。另外,用#undef可以终止宏定义的作用域,可灵活控制宏定义的作用范围。
(1)#define定义的常量无数据类型,只是简单的字符替换,没了类型的安全检查,且有时还会产生边际效应。
e.g:#define N100...
分类:
其他好文 时间:
2015-01-20 12:04:09
阅读次数:
144
宏定义在很多语言里面都可以看到它的影子,C# ,C++,C等,尤其是系统API里面很多宏定义,看着很唬人。合理的利用宏定义,可以让自己的代码看着更规范,更方便,尤其在特定的某些地方。使用宏定义还可以让自己的代码看着高大上有木有!本文改引自http://www.cnblogs.com/ios8/p/i...
分类:
其他好文 时间:
2015-01-19 22:34:30
阅读次数:
277
1、错误提示:liubo.S:1:Error:badexpressionliubo.S:1:Error:junkatendofline,firstunrecognizedcharacteris`0'错误:.equmem_control_address,#0x48000000@宏定义,存储控制器起始地...
分类:
其他好文 时间:
2015-01-19 22:20:10
阅读次数:
421
一、汇编初始化部分(liubo.S) 1 .equ mem_control_address, 0x48000000 @宏定义,存储控制器起始地址 2 .equ sdram_address, 0x30000000 @宏定义,SDRAM的起始地址 3 ...
分类:
其他好文 时间:
2015-01-19 22:17:27
阅读次数:
161
const const是c++中的修饰符。c++中常用来定义常量,修饰左值。#define 宏定义语句, 在预处理阶段直接做文本替换,不做类型检查。它们之间的最大区别:1. 对于const变量,系统只给了一个相应的内存地址,而#define则是给出了一个立即数。因为const变量是存放在内存的静态....
分类:
移动开发 时间:
2015-01-19 10:35:29
阅读次数:
222
预处理就是在进行编译的第一遍词法扫描和语法分析之前所作的工作。说白了,就是对源文件进行编译前,先对预处理部分进行处理,然后对处理后的代码进行编译。这样做的好处是,经过处理后的代码,将会变的很精短。 关于预处理命令中的文件包含(#include),宏定义(#define),书上已经有了详细的说明,在....
分类:
其他好文 时间:
2015-01-17 20:50:17
阅读次数:
123
简介 在后面取消以前定义的宏定义在此程序中,我们将取消在先前程序中对预处理器的定义。 1 #include 2 int main( void ) 3 { 4 #define MAX 200 5 printf("MAX= %d\n",MAX); 6 #undef MAX 7 ...
分类:
其他好文 时间:
2015-01-17 19:21:40
阅读次数:
163
先来回忆下C语言中宏是怎么定义的,最基本的是定义常量:#define MAX_LEN 1024 这是最简单的常数宏定义,其中宏名按规定是要大写的,宏名在预编译时会由后面的值替代掉(预编译四大步骤:1、用宏名后面的值替换宏名;2、加载包含的头文件内容;3、判断逻辑假,并且去掉逻辑假代码;4、删除注释)。
C语言中宏函数定义格式:#define FUN_NAME(a, b, c)...
分类:
其他好文 时间:
2015-01-16 16:51:04
阅读次数:
220
##(两个井号)和#(一个井号)都是什么意思连接符 ##(两个井号)不知道什么符 #(一个井号)## 连接符号由两个井号组成,其功能是在带参数的宏定义中将两个子串(token)联接起来,从而形成一个新的子串。但它不可以是第一个或者最后一个子串。所谓的子串(token)就是指编译器能够识别的最小语法单...
分类:
编程语言 时间:
2015-01-16 16:11:50
阅读次数:
163