我们可以在 c 语言的#define 指令中声明一个变量吗?
can we declare a variable in #define directive in c?
以下代码片段的输出是什么??
#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)
。会报错Type name is not allowed,因为你在printf
函数中传递了int
typename。
是的,你可以声明一个变量使用 #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
变量。
但是以这种方式声明变量对于理解和调试来说确实很复杂。避开它。
以下代码片段的输出是什么??
#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)
。会报错Type name is not allowed,因为你在printf
函数中传递了int
typename。
是的,你可以声明一个变量使用 #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
变量。
但是以这种方式声明变量对于理解和调试来说确实很复杂。避开它。