C4411: Maximum number of arguments for macro expansion reached

[FATAL]

Description

The compiler has reached the limit for the number of macro arguments for a macro invocation.

Example
  #define A0(p1,p2,...,p1024) (p1+p2+...+p1024)

  
  #define A1(p1,p2,...,p1024) A0(p1+p2+...+p1024)

  
  void foo(void) {

  
    A1(1,2,...,1024); // message C4411 here

  
  }

  
Tips

Try to avoid such a huge number of macro parameters, use simpler macros instead.

See also