C语言中#define的问题
发布网友
发布时间:2022-04-22 21:40
我来回答
共5个回答
热心网友
时间:2022-06-23 14:12
你的理解是不对的,
#ifdef
global_variables_here
#undef
extern
#define
extern
#endif
应该这样理解:
如果定义了global_variables_here
不管extern是否定义过,都取消他之前的定义
重新定义extern
这种做法的目的在于防止extern重定义,比如你在另外一个文件中定义过了extern的话,你不做#undef的操作,直接在现在这个文件中#define
extern是错误的做法,因为编译器不知道该用哪个宏定义。
热心网友
时间:2022-06-23 14:13
#define
M(x,y,z)
x*y+z
展开此宏时不能自行加括号,直接原形展开即可
由int
a=1,b=2,c=3;
得M(a+b,b+c,c+a)=a+b*b+c+c+d=1+2*2+3+3+1=12
热心网友
时间:2022-06-23 14:13
可以的,#define a 3后面是不加;号的
把这些宏定义放到a.h文件中,在程序中#include "a.h"就可以了
热心网友
时间:2022-06-23 14:14
在main函数前面定义一个变量,就是全局变量,在下面不管什么地方都能是使用。随时都能修改它的值。
热心网友
时间:2022-06-23 14:15
全局变量啊
int a=3;
int main()
{
a=4;
}