首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

请问一个有关参数宏的有关问题

2012-02-27 
请教一个有关参数宏的问题#defineSQUARE(n)((n)*(n))voidmain(){inti5intjSQUARE(i++)//注1cout i

请教一个有关参数宏的问题
#define   SQUARE(n)   ((n)*(n))
void   main()
{
        int   i=5;
        int   j=SQUARE(i++);     //注1
        cout < <i < < '   ' < <j < <endl;
       
        int   k=5;
        int   m=0;
        m=SQUARE(k++);     //注2
        cout < <k < < '   ' < <m < <endl;
}
输出结果为:7   30
                        7   25
注1处用宏所得结果去初始化j,注2处用宏所得结果给m赋值。我知道SQUARE(i++)被替换为((i++)*(i++)),但为什么j、m的结果不同?请高手指教。

[解决办法]
vc6.0结果
7 25
7 25
[解决办法]
C++BUILDER结果为
7 25
7 25

热点排行