关于C中#define的用法...
可以编译.
#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 的功能是将标识符定义为其后的常量,一经定义,程序中就可以直接用标识符来表示这个常量。
define
a
b把b当成a
之后的代码里相当于直接复制
#define作用是用一个字符串替换另一个进行编译,这里不是变量。
比如,你用了#define pi 3.14
那么,并不表示pi是一个变量,而是在出现“pi”的地方,都会替换成3.14,然后编译器才对程序进行编译。
如果你放了两个,编译器根本不能正常处理字符串的替换工作。
另外,第二个程序段改成分开后,还要去掉int r;
#define pi 3.14,r 2像这样如果要定义两个量是要分开的
如:
#define pi 3.14
#define r 2