在c中定义获取参数的值

define in c get the value of parameter

我想创建一个程序,使用 c 中的 define 打印三个参数的值

#include <stdio.h>
#define Print(num) printf("%d",n##num)
int main()
{
    int i;
    int n1=1, n2=2, n3=3;
    for(i=1;i<=3;i++)Print(i);
}

问题是 n##num 等于 ni 和 n1,n2,n3。 有没有办法让 i 的值设置为 num 而不是“i”?

预处理器在代码编译之前运行。你不能像那样在预处理器中做循环。

你真正想要的是一个数组:

#include <stdio.h>

int main()
{
    int i;
    int n[] = { 1, 2, 3 };
    for(i=0;i<3;i++) printf("%d\n", n[i]);
}