设为首页  
联系我们  
加入收藏  
网页制作 冲浪宝典 图形图像 操作系统 软件教学 编程开发 认证考试 安全技术 站长专区 文学驿站 娱乐天地 游戏天地 办公软件
文章搜索
您的位置: 首页 >> 文章首页 >> 编程开发 >> 其他开发语言 >> define专题(转贴)
精品推荐
其他开发语言点击TOP10
·数字小键盘指法练习
·用C语言编通讯录程序(初学者级别的)
·Modem 常用AT指令集
·单片机模拟I2C总线及24C02(I2C EEPROM)读写实例(源代码)
·C++经典电子书下载
·Thinking in C++ 简体中文第二版
·debug和release的区别
·error LNK2001: unresolved external symbol __ftol2 错误解决
·C库函数手册
·一个简单的C语言编译器
编程开发点击TOP10
·数字小键盘指法练习
·ASP.NET 程序中常用的三十三种代码
·用C语言编通讯录程序(初学者级别的)
·我写的Java学生成绩管理系统源代码
·CHK文件恢复工具
·Modem 常用AT指令集
·java笔试题
·异常java.sql.SQLException: Io exception:The Network Adapter could not establish connection
·单片机模拟I2C总线及24C02(I2C EEPROM)读写实例(源代码)
·C++经典电子书下载
精选专题

define专题(转贴)

作者: 来源:网络文章 时间:2005-12-17 20:56:18

define专题(转贴)(1)

原文:CSdn.net/EXPert/topic/3194/3194845.XML?temp=.2763483">http://community.csdn.net/Expert/topic/3194/3194845.xml?temp=.2763483

缘起,为什么要使用define

我们在写程序的时候总是需要一些如下的代码

int* p =(int *)malloc(sizeof(int)*100)

for(i=0;i<100;i++)
{
         ................
}
好,这个代码能正常的运行,但是有一天,突然觉得100实在是有点少,我打算申请1000个int,改成如下的代码

int* p =(int *)malloc(sizeof(int)*1000)

for(i=0;i<1000;i++)
{
         ................
}
为了让这个代码正常的工作,修改了两次,如果在更多的地方使用了数组的最大值,
那么我可能需要对每一个地方都进行修改,无法想象的恐怖啊,而且,就算是我能修改1000,过了一年之后我都未必知道这个1000对程序意味着什么。对于每一个程序员都会想象,如果有一个类似于ArrayMax之类的东西来代替1000有多好。既增加了程序的可读性,又使得程序易于修改。

写程序的时候,总是需要一些小的函数,例如一个返回两个数中较大值的函数,而众所周知,函数调用会带来比较大的系统开销,但是我们又不能总是去写

int d = x>y ? x:y;

这种语句,一个是些大量重复的代码,另一个是程序很难维护,如果有这样一种模式,他看起来像一个函数,却不会带来函数那样的系统开销,就会使这种情况大大的改观。

让我们先来看看define的基本语法,如下:

1.简单的define定义

#define 1000 MAX

一个简单的max就定义好了,它代表1000,如果在程序里面写
for(i=0;i{
         ................
}
编译器在处理这个代码之前会对MAX进行处理替换为1000。

2.define的“函数定义”

define可以像函数那样接受一些参数,如下

#define max(x,y) (x)>(y)?(x):(y);

这个定义就将返回两个数中较大的那个,看到了吗?因为这个“函数”没有类型检查,就好像一个函数模板似的,当然,它绝对没有模板那么安全就是了。可以作为一个简单的模板来使用而已。

3.宏的单行定义

#define  A(x)    T_##x
  
#define  Bx)    #@x
  
#define  Cx)    #x
   我们假设:x=1,则有:
   A(1)------〉T_1
   B(1)------〉'1'
   C(1)------〉"1"

共2页 9 7 [1] [28 :>

define专题(转贴) 相关文章:
define专题(转贴) 相关软件:
特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
转载请注明来源:http://www.xgdown.com