C4446: Missing macro argument(s)

[WARNING]

Description

In a macro 'call', one or more arguments are missing. The pre-processor replaces the parameter string with nothing. Note: The pragma MESSAGE does not apply to this message because it is issued in the preprocessing phase.

Example
  #define f(A, B) int A B

  
  void main(void){

  
    f(i,);// this statement will be replaced with 'int i;'

  
          // by the pre-processor.

  
  }

  
Tips

Be careful with empty macro arguments, because the behavior is undefined in ANSI-C. So avoid it if possible.