66问答网
所有问题
c语言宏定义如何用?用宏定义有什么优点?
如题所述
举报该问题
推荐答案 2011-09-12
主要用于函数重定义,通用性,可以用一个变量符号替代另一个变量符号
格式:#define M(x,y) x+y
在主程序里写入z=M(6,9);等价于z=6+9;而写成z=(6-8,9);等价于z=6-8+9 ;直接代入
还有就是 :#define Uint unsigned int 即用 Uint 代替unsigned int 便于书写,还有就是不同操作系统的通用变量识别
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://66.wendadaohang.com/zd/pUDUx2Us9.html
其他回答
第1个回答 2011-08-31
用#define 来定义,如#define Max 100
优点:在以后的程序中 要修改Max的大小 不用跑到程序中找 直接修改
#define Max 的大小即可。很方便。
追问
那是不是就要在开始对MAX赋予常量?能不能说#define Max x,然后我再在MAIN函数中对x赋值?
第2个回答 2011-08-31
宏定义
宏定义是C提供的三种预处理功能的其中一种,这三种预处理包括:宏定义、文件包含、条件编译
编辑本段1.不带参数的宏定义:
宏定义又称为宏代换、宏替换,简称“宏”。
格式:
#define 标识符 字符串
其中的标识符就是所谓的符号常量,也称为“宏名”。
预处理(预编译)工作也叫做宏展开:将宏名替换为字符串。
掌握"宏"概念的关键是“换”。一切以换为前提、做任何事情之前先要换,准确理解之前就要“换”。
即在对相关命令或语句的含义和功能作具体分析之前就要换:
例:
#define PI 3.1415926
把程序中出现的PI全部换成3.1415926
说明:
(1)宏名一般用大写
(2)使用宏可提高程序的通用性和易读性,减少不一致性,减少输入错误和便于修改。例如:数组大小常用宏定义
(3)预处理是在编译之前的处理,而编译工作的任务之一就是语法检查,预处理不做语法检查。
(4)宏定义末尾不加分号;
(5)宏定义写在函数的花括号外边,作用域为其后的程序,通常在文件的最开头。
(6)可以用#undef命令终止宏定义的作用域
(7)宏定义可以嵌套
(8)字符串" "中永远不包含宏
(9)宏定义不分配内存,变量定义分配内存。
编辑本段2.带参数的宏定义:
除了一般的字符串替换,还要做参数代换
格式:
#define 宏名(参数表) 字符串
例如:#define S(a,b) a*b
area=S(3,2);第一步被换为area=a*b; ,第二步被换为area=3*2;
类似于函数调用,有一个哑实结合的过程:
(1)实参如果是表达式容易出问题
#define S(r) r*r
area=S(a+b);第一步换为area=r*r;,第二步被换为area=a+b*a+b;
正确的宏定义是#define S(r) ((r)*(r))
(2)宏名和参数的括号间不能有空格
(3)宏替换只作替换,不做计算,不做表达式求解
(4)函数调用在编译后程序运行时进行,并且分配内存。宏替换在编译前进行,不分配内存
(5)宏的哑实结合不存在类型,也没有类型转换。
(6)函数只有一个返回值,利用宏则可以设法得到多个值
(7)宏展开使源程序变长,函数调用不会
(8)宏展开不占运行时间,只占编译时间,函数调用占运行时间(分配内存、保留现场、值传递、返回值
C语言宏定义技巧(常用宏定义)
写好C语言,漂亮的宏定义很重要,使用宏定义可以防止出错,提高可移植性,可读性,方便性 等等。下面列举一些成熟软件中常用得宏定义。。。。。。本回答被提问者采纳
第3个回答 2011-08-31
自己去网站找呀!!!!
相似回答
c语言
中# define的用法是
什么?
答:
在#define中,标准只
定义
了#和##两种操作。#用来把参数转换成字符串,##则用来连接前后两个参数,把它们变成一个字符串。运行结果如下:
C语言
的宏(macro)是
什么?怎样使用宏?
答:
使用宏有以下几点好处: (1)
在输入源代码时,可省去许多键入操作
。(2)因为宏只需定义一次,
C语言
的
宏定义
问题
答:
如果是自己编程使用宏替换,则在使用简单宏定义时,当字符串中不只一个符号时,加上括号表现出优先级,如果是带参数的宏定义,则要给宏体中的每个参数加上括号,并在整个宏体上再加一个括号。看到这里,不禁要问,
用宏定义
这么麻烦,这么容易出错,可不可以摒弃它,那让我们来看一下在
C语言
中用宏定义的
好处
吧。 3 ...
C语言宏定义
#define的理解与资料整理!希望你能get到!
答:
深入理解
C语言
中的
宏定义
,提升代码效率与可读性!一、宏定义的明智运用 尽管#define在C语言中提供便捷,但需谨慎使用。对于数值,建议优先
使用c
onst以强化类型检查,如SEC_A_YEAR(60*60*24*365 UL),避免潜在的溢出问题,确保无符号整数的正确表示。二、字符串宏的特殊规则 处理字符串宏时,务必注意...
C语言
里#define N 10是
什么
意思
答:
C语言
里“#define N 10”是表示之后代码中的“N”全部代表“10”,并且是在执行编译预处理时就进行了实际的替换操作。define函数定义一个常量的宏,被定义为“宏”的标识符称为“宏名”。在编译预处理时,对程序中所有出现的“宏名”,都
用宏定义
中的字符串去代换,这称为“宏代换”或“宏展开”...
C语言
中的#define是什么意思,
有什么
作用,
怎样用??
答:
define
定义
一个标识符来表示一个常量。其特点是定义的标识符不占内存,只是一个临时的符号,预编译后这个符号就不存在了。用 #define 定义标识符的一般形式为:define 标识符 常量 //注意, 最后没有分号 define 和 #include 一样,也是以“#”开头的。凡是以“#”开头的均为预处理指令,#...
大家正在搜
c语言的宏定义如何定义
宏定义是c语言语句吗
c语言宏定义的几个坑和特殊用法
c语言宏定义用法规则
c语言宏定义格式
c语言宏定义计算
c语言宏定义函数
c语言宏定义的例子
c语言文件有哪些优点
相关问题
C语言中的宏定义有什么用?
请问C语言中宏定义怎么用
单片机C语言的宏定义有什么作用!!
C语言的宏定义问题
C语言中常量定义和宏定义有什么区别?
在C语言中 宏定义是什么?
c语言中什么是宏定义,它是干什么的?
C语言中的宏定义如何使用?