小编nik*_*ola的帖子

宏输出说明

有人可以解释这个程序的输出 -

#include<stdio.h>
#include<conio.h> 

#define FUDGE(k) k+3.14159
#define PR(a) printf(#a" = %d\t ",(int)(a))
#define PRINT(a) PR(a);putchar('\n')

int main()
{
    int x=2;

    PRINT(x*FUDGE(2));
    printf(\n);
    PR(x*FUDGE(2));

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出 -

x*2+3.14159 = 7

x*FUDGE(2) = 7
Run Code Online (Sandbox Code Playgroud)

为什么FUDGE(2)要在第二个声明中打印而不是在第一个声明中打印.

c c++ macros

3
推荐指数
1
解决办法
96
查看次数

宏输出说明

当我运行以下代码时,

#include<stdio.h>
#define X (4+Y)
#define Y (X+3)

int main()
{
  printf("%d",4*X+2); 
  return 0;
}

I am getting the following output: 
Error: Undefined symbol 'X'
Run Code Online (Sandbox Code Playgroud)

有人可以解释输出吗?

c

2
推荐指数
2
解决办法
998
查看次数

标签 统计

c ×2

c++ ×1

macros ×1