关于C中#define的用法...

1).可以编译.#include<stdio.h>#definepi3.14main(){floats;intr=2;s=pi*r*r;printf("s=%f",s);... 1).
可以编译.

#include<stdio.h>
#define pi 3.14
main()
{
float s;
int r=2;
s=pi*r*r;
printf("s=%f",s);
getch();
}

2).
不可编译

#include<stdio.h>
#define pi 3.14,r 2
main()
{
float s;
int r;
s=pi*r*r;
printf("s=%f",s);
getch();
}

是因为#define的用法错误吗?
展开
 我来答
大野瘦子
高粉答主

2018-12-09 · 繁杂信息太多,你要学会辨别
知道小有建树答主
回答量:1227
采纳率:100%
帮助的人:33.3万
展开全部

有三种用法,例如替代多行的代码、条件编译,还有典型的宏定义,具体如下:

1、define最重要的用法是条件编译

#ifdef WINDOWS

......

......

#endif

#ifdef LINUX

......

......

#endif

可以在编译的时候通过#define设置编译环境

2、典型的使用方法

使用宏定义我们可以自己根据自己的习惯来定义甚至改变C语言的语法习惯,例如:

#define BEGIN {

#define END }

int main()BEGIN

printf ("DEFINE----\n");

END

定义一个循环

#define LOOP for(;;)

重新定义数据类型

#define IT int

3、define可以替代多行的代码,在每一个换行的时候加上一个"\"

#define MAX(X,Y) do { \

语句1; \

语句2; \

/* 注释的写法 */ \

} while(0) /* (no trailing ; ) */ \

扩展资料:

关于上述中用 #define 定义标识符的一般形式为:

1、#define  标识符常量   //注意, 最后没有分号

2、#define 和 #include 一样,也是以“#”开头的,凡是以“#”开头的均为预处理指令,#define也不例外。

3、#define又称宏定义,标识符为所定义的宏名,简称宏,标识符的命名规则与前面讲的变量的命名规则是一样的。

4、#define 的功能是将标识符定义为其后的常量,一经定义,程序中就可以直接用标识符来表示这个常量。

端丁都秀兰
2020-01-10 · TA获得超过4016个赞
知道大有可为答主
回答量:3135
采纳率:31%
帮助的人:194万
展开全部
宏定义
define
a
b把b当成a
之后的代码里相当于直接复制
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hughxing
2009-09-02 · TA获得超过4358个赞
知道小有建树答主
回答量:495
采纳率:0%
帮助的人:0
展开全部
正如上面那位tail1013说的那样,宏定义define,只可单独使用。
#define作用是用一个字符串替换另一个进行编译,这里不是变量。
比如,你用了#define pi 3.14
那么,并不表示pi是一个变量,而是在出现“pi”的地方,都会替换成3.14,然后编译器才对程序进行编译。

如果你放了两个,编译器根本不能正常处理字符串的替换工作。

另外,第二个程序段改成分开后,还要去掉int r;
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友2ea5ee627
2009-09-02
知道答主
回答量:8
采纳率:0%
帮助的人:6.8万
展开全部
define,宏定义,只可单独使用
#define pi 3.14,r 2像这样如果要定义两个量是要分开的
如:
#define pi 3.14
#define r 2
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式