宏定义是C提供的三种预处理功能的其中一种,这三种预处理包括:宏定义、文件包含、条件编译1.不带参数的宏定义: 宏定义又称为宏代换、宏替换,简称“宏”。 格式: #define 标识符 字符串 其中的标识符就是所谓的符号常量,也称为“宏名”。 预处理(预编译)工作也叫做宏展开:将宏名替换为字...
分类:
其他好文 时间:
2016-01-09 21:35:47
阅读次数:
204
C++ typedef用法小结 (※不能不看※)第一、四个用途用途一:定义一种类型的别名,而不只是简单的宏替换。可以用作同时声明指针型的多个对象。比如:char* pa, pb; // 这多数不符合我们的意图,它只声明了一个指向字符变量的指针,// 和一个字符变量;以下则可行:typedef cha...
分类:
编程语言 时间:
2015-12-22 22:34:43
阅读次数:
247
把高级语言编译成二进制可执行代码的工具。需要经历的四个步骤:(1)预处理:去掉注释,进行宏替换(#define相关),头文件(#include) gcc -E test.c -o test.i(2)编译:不同平台选用的汇编语言是不一样的。编译将高级语言编译成汇编语言 gcc -S test.c .....
分类:
编程语言 时间:
2015-12-09 00:00:57
阅读次数:
378
一, GNU工具链简介: (1)编译代码步骤: 预处理 -> 编译 -> 汇编 -> 链接; 预处理:去掉注释,进行宏替换,头文件包含等工作; gcc -E test.c -o test.i 编译: 不同平台使用汇编语言不同,汇编将高...
分类:
编程语言 时间:
2015-12-02 00:39:53
阅读次数:
285
DLog本质上就是个宏替换。DLog具体代码如下:#ifdef DEBUG#define DLog(fmt, ...) NSLog((@"%s [Line %d] "fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__);#else#define DL...
分类:
其他好文 时间:
2015-10-29 12:59:59
阅读次数:
294
1.宏替换,完全展开替换,注意带来副作用#include #define 打印语句 printf(“hello”);Void main(void){ If (1) 打印语句;; Else ….;}Void main(void){ If (1) printf(“hello”); ; Else ….;}...
分类:
其他好文 时间:
2015-09-20 17:28:56
阅读次数:
121
看下面的代码,输出的结构是什么呢?#include
using namespace std;
#define NUM 0void fun()
{
#undef NUM
#define NUM 100
}
int main()
{
fun();
cout<<"NUM="<<NUM<<endl;//NUM=100;
return 0;
}没错...
分类:
编程语言 时间:
2015-08-28 17:50:14
阅读次数:
194
#define和inline 的区别define:定义预编译时处理的宏;只进行简单的字符替换,无类型检测typedef:定义类型别名 用于处理复杂类型例: typedef int A;则:A a; //定义a为intinline:内联函数对编译器提出建议,是否进行宏替换,编译器有权拒绝既为提出申请,...
分类:
其他好文 时间:
2015-08-27 22:37:43
阅读次数:
132
这个函数跟以前的写法,改变有如下几点: 用.equ伪指令,引用系统调用编号,.equ有点类似c语言里面的宏替换 用.lcomm伪指令,声明一块buffer code: .equ?BUFFER_SIZE,?512
.equ?SYS_READ,?3
.equ?SYS_WRITE...
分类:
其他好文 时间:
2015-08-16 13:57:07
阅读次数:
124
#define 例: #define N 2+2//预处理时:将程序中N的地方用2+2代替(2) 带参数的宏定义:#define () 例: #define A(x) x-----以上为宏定义--------注意:宏替换是简单的替换。其实,所有预处理: 经过预处理器处理的源程序与之前的源程序有...
分类:
其他好文 时间:
2015-08-06 01:48:43
阅读次数:
124