C语言 #define
来源:互联网 发布:贝叶斯网络维基百科 编辑:程序博客网 时间:2024/05/22 14:17
今天遇到陌生的#define 翻书一看是宏定义,那作用和定义变量差不多。就不明白到底有什么区别了。
网上一查~收集了一些解释
有的时候为了程序的通用性,可以使用#define预处理宏定义命令,它的具体作用,就是方便程序段的定义和修改。
举个例子吧,如果说你在做一个项目,这个项目的代码很长,有5000多行,而且基本上裏面的同一个常量N就占了3000多行,如果说今后你要是想对这个常量N的值进行修改,如果在程序的开始没有定义一个#define N,那么改起来不是很麻烦,3000多行啊,那不是要晕过去了~如果你事先定义了一个#define N ‘常量值’,那么当你要修改程序内部的常量值时,只要修改N后面的常量值就等于把程序内部的要修改的相同常量值都改了,那就很方便了
宏定义没有类型
比如宏定义#define pi 3.1415926这里的pi并没有类型
建议你少用宏定义,因为宏定义存在很强的安全隐患,没有类型的变量当然在很多时候会造成很多错误了,而且所有的宏定义都可以用其他的方式代替,一般情况下更简便,只不过大多初学者以为宏定义看起来似乎很酷,所以初学的时候都喜欢用,其实现在基本上已经没什么人用宏定义了,用了宏定义的程序健壮性不行。
由于define定义没有空间,即不能将宏的指针赋值给变量或常量。
编译时替换,因为将源代码翻译成可执行的文件时,要经过编译和链接,才能生成可执行文件(exe),也就是在这个过程中编译器直接将宏扩展成定义的内容
- C语言 #define
- C语言#define用法
- C语言 #define 举例
- C语言define之#,##
- C语言 #define用法
- C语言之define
- C语言Define
- C语言I-声明#define
- C语言之#define用法
- C语言之#define用法
- c语言 #define 中的UL
- 关于c语言#define debug
- C语言之#define用法
- c语言 #define 中的UL
- c语言typedef 与 #define
- c语言 #define 中的UL
- c语言 #define 中的UL
- c语言define的用法
- 基于netvibes源码实现类似igoogle的个性化主页
- 编译e1000 缺少:mmzone.h bounds.h
- DSP DM642编译错误"err:15-bit displacment is not algned...."
- NOI2009诗人小G(P=2时做法)
- Linux kernel source not configured:missing autoconf.h
- C语言 #define
- JavaScript权威指南 Loan Calculator示例说明
- struts2+hibernate3+spring2读书笔记7(Struts 2 标签库)
- Useful Website
- data model essential 之读书笔记(四)
- S2SH整合的一些体会
- CentOS 5.5安装 FCoE initiator 错误
- Spring中AOP的实现及例子
- Oracle 中调试、调用(带参数的)存储过程