Using macro results in incorrect output when used as part of a larger math expression - why does this happen?

前端 未结 13 2039
别那么骄傲
别那么骄傲 2020-12-11 17:50

This is a normal C routine program which i found out in some question bank. It is shown below:

#define CUBE(p) p*p*p

main()
{
    int k;
    k = 27 / CUBE(3         


        
相关标签:
13条回答
  • 2020-12-11 18:41

    Preprocessors should be parenthesized properly. Replace it with

    #define CUBE(p) ((p)*(p)*(p))
    

    and see.

    0 讨论(0)
提交回复
热议问题