你能解释下面的代码吗?我们如何使用#define
作为C的关键字?
#include <stdio.h>
#define int int*
int main(void) {
int *p;
int q;
p = 10;
q = 5;
printf("%d %d", p, q);
// your code goes here
return 0;
}
输出:
10 5
答案 0 :(得分:7)
此#define int int*
是预处理器宏。如果要为类型定义自己的同义词,请使用typedef
。您无法使用未创建的语言创建关键字。
样品:
#include <stdio.h>
typedef int * myIntPtr;
int main(void) {
int i = 10;
myIntPtr x = &i;
printf("%d", *x);
return 0;
}
输出:
10
同样在语义上将int
设为int *
毫无意义。
答案 1 :(得分:0)
#define a b
会在#define
之后将源中的所有“a”更改为“b”#include <stdio.h>
#define int int*
int main(void) {
int *p;
int q;
p = 10;
q = 5;
printf("%d %d", p, q);
// your code goes here
return 0;
}
将更改为
int main(void) {
int **p;
int *q;
p = 10;
q = 5;
printf("%d %d", p, q);
// your code goes here
return 0;
}