c语言宏变量赋值
A. 宏程序中自变量赋值地址中的A,B,C,D,E.......Z是什么意思
表示他们各作为引数赋值的地址符。I J K 必须按先后顺序。其余没先后顺序
A #1; B #2 ;C #3;
D #7;; E #8 ;F #9;
H #11; I #4;J #5; K #6;
M #13;Q#17;R #18;S #19;
T#20; U #21;V #22;W #23;
X #24;Y #25 ; Z #26;
B. c语言中宏跟常变量的定义有什么区别
C当中是没有常变量的,也就是定义的变量赋值了常数但是仍然可以改变值;C++里边才有常变量,定义同时初始化,以后就不能改变值了。
C中的宏定义就是一种替换,代码上的复制替换,可以这样理解,define
A
12345就是凡是A出现的地方都用12345替换,当然宏替换就不止数值,还可以到字符串、函数表达式上去。替换的部分是预定义,经过编译后才会替换掉,并且对A是没有分配存储空间的,其实也没必要,都全部替换了。
C. C语言中,宏中,赋值符号=前边的标识符还用加括号吗
实际上加不加都可以,加了括号可以避免一些谬误
例如
#define A(a,b,c) c = a*b
使用A(1+2, 3, x);
会变成
x= 1+2*3;
x的结果是7,而不是期望的9
所以用宏的时候通常都会加上()
D. 请问C语言中宏定义怎么用
宏定义就好像是WORD中的“全部替换”一样,只不过这个替换是在将源程序在系统“编译”时执行的。
举例说:
#define sub(a,b) ((a)-(b))
源程序中若有
x=sub(200-1,100+10);
会被编译为:
x=((200-1)-(100+10));
即x被赋值为89
如果#define sub(a,b) a-b的话
x=sub(200-1,100+10);
就变成x=200-1-100+10;
x会被赋值为109
E. 急!!!在线等!!C语言宏定义的作用
#是C语言里的预处理命令,编译器在编译代码之前,会预先处理这部分内容,#define 就是宏定义,对于 #define 的内容是怎样处理的呢?看下面的代码
#define MAX 128
void main()
{
int max=MAX;
}
编译器处理时,会直接把 int max=MAX;替换成 int max=128; 注意,是文本替换,而不是变量赋值,程序中自始至终都不存在MAX这个变量,相当于是用“查找-替换”功能一样,查找 MAX ,替换成 128 。
如果程序中有多个地方要用到同一个值、代码块,我们都可以定义成一个宏,如果这些值或代码块要改动,只需改下宏定义就行了,不用从代码中一处一处的改,很方便,而且不会因为漏掉某个地方而导致程序出错。
F. c语言中的宏可以被赋值吗
不能,宏只能用来做简单的替换,上面的MAX(x,y)中Max才是宏,x、y只是他的参数,max就是(x>y?(x):(y))这条语句,x=5、y=6所以输出y;还有那个qqq的,因为之前已经定义了一个参数a,所以编译之后是a=2不是qqq=2,如果你将int a去掉试试
G. c语言中为什么用宏定义一个字符常量(一个字母)可以赋值给字符变量,
因为宏是一个简单替换,所以c语言中用宏定义一个字符常量(一个字母)可以赋值给字符变量。实质是在编译之前会把宏替换掉,然后再编译。
例如:
#define A 5
void main()
{
int num=A;
}在编译之前A已经被替换成5了,所以就可以赋值给num。
H. C语言宏定义
楼主看看书,仔细看看编译预处理都做了哪些事情。
程序设计语言的预处理的概念:在编译之前进行的处理。 C语言的预处理主要有三个方面的内容: 1.宏定义; 2.文件包含; 3.条件编译。 预处理命令以符号“#”开头。
宏定义又称为宏代换、宏替换,简称“宏”。预处理制作单纯的宏展开,并不是检查语法错误,所说义是错误的。
语法错误都是编译阶段才检查的。预处理是不检查的。
I. C语言中使用宏定义多次赋值的问题
宏属于预处理,在编译之前完成替换,因此你的描述应该是做不到的。
其实你如果要定义1000个宏,不如直接定义一次数组,然后在初值表赋值了,然后把该数组的内容再赋值给B。
int A[1000]={0x5,0xA,)x20,.......};
J. c语言中为什么用宏定义一个字符常量(一个字母)可以赋值给字符变量
因为宏是一个简单替换,所以c语言中用宏定义一个字符常量(一个字母)可以赋值给字符变量。实质是在编译之前会把宏替换掉,然后再编译。
例如:
#define A 5
void main()
{
int num=A;
}
在编译之前A已经被替换成5了,所以就可以赋值给num。