你真的可以用C语言重新定义关键字吗?

Raj*_*tel 0 c keyword c-preprocessor

你能解释下面的代码吗?我们如何使用#defineC的关键字?

#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;
}
Run Code Online (Sandbox Code Playgroud)

输出:

10 5
Run Code Online (Sandbox Code Playgroud)

Sad*_*que 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;
}
Run Code Online (Sandbox Code Playgroud)

输出:

10
Run Code Online (Sandbox Code Playgroud)

此外语义制造int一个int *没有意义的.