#include<stdio.h>
#include<conio.h>
#define CUBE(y)y*(y*y)
main()
{
int j;
j = CUBE(-2+4);
printf("value of j = %d",j);
getch();
}
此代碼的輸出爲-26
。我只是想知道這個代碼如何將-26
作爲輸出。 #define
如何在此代碼中工作。我知道#define
永久固定值爲一個變量或方法,但不是這裏如何工作CUBE
。有人可以請一步一步來形容這一點,方法簡單。#define如何工作?奇怪的結果爲CUBE(y)y *(y * y)
你知道一個宏的工作原理是直接進行文本替換嗎?因此,請手動執行替換,並考慮結果的含義。 –
此代碼不符合conio。h是過時的,非標準的,你不應該使用,見http://en.wikipedia.org/wiki/Conio.h – kebs
@kebs:我願意打賭OP是使用古老的可怕編譯器,可能是Turbo C++。 – duskwuff