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

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的用法错误吗?

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

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 的功能是将标识符定义为其后的常量,一经定义,程序中就可以直接用标识符来表示这个常量。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-01-10
宏定义
define
a
b把b当成a
之后的代码里相当于直接复制
第2个回答  2009-09-02
正如上面那位tail1013说的那样,宏定义define,只可单独使用。
#define作用是用一个字符串替换另一个进行编译,这里不是变量。
比如,你用了#define pi 3.14
那么,并不表示pi是一个变量,而是在出现“pi”的地方,都会替换成3.14,然后编译器才对程序进行编译。

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

另外,第二个程序段改成分开后,还要去掉int r;本回答被提问者采纳
第3个回答  2009-09-02
define,宏定义,只可单独使用
#define pi 3.14,r 2像这样如果要定义两个量是要分开的
如:
#define pi 3.14
#define r 2
相似回答