以下代码段的输出是什么?
#include<stdio.h>
#define MUL(A,B) int t; t=A*B;
void main()
{
int A=10,B=12;
printf("%d", MUL(A,B));
}
输出将是一个错误(如不允许声明)或给定的数字将被相乘???
#define预处理程序指令中是否允许该声明???
编译器将取代你printf("%d", MUL(A,B))
用printf("%d", int t; t=A*B)
。这将导致错误不允许使用类型名称,因为您int
在printf
函数中传递了类型名称。
是的,您可以使用#define
以下方法声明变量:
#include<stdio.h>
#define MUL(A,B) int t; t=A*B;
void main()
{
int A=10, B=12;
MUL(A,B);
printf("%d", t);
}
它不会引起错误。之后MUL(A,B)
您将能够访问t
变量。
但是,以这种方式声明变量对于理解和调试来说确实很复杂。避开它。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句