C++面试题-宏使用

2011-04-18 12:30:44 · 作者: · 浏览: 671
Q:

#include "stdafx.h"
#define SQR(X) X*X

int main(int argc, char* argv[])
{
 int a = 10;
 int k = 2;
 int m = 1;

 a /= SQR(k+m)/SQR(k+m); 
 printf("%d\n",a);

 return 0;
}
这道题目的结果是什么啊

define 只是定义而已,在编择时只是简单代换X*X而已,并不经过算术法则的

a /= (k+m)*(k+m)/(k+m)*(k+m);
=>a /= (k+m)*1*(k+m);
=>a = a/9;
=>a = 1;