C4409: a ## b: the concatenation of a and b is not a legal symbol

[WARNING]

Description

The concatenation operator ## is used to concatenate symbols. If the resulting symbol is not a legal one, this message is issued. Note: The pragma MESSAGE does not apply to this message because it is issued in the preprocessing phase.

Example
  #define concat(a,b) a ## b

  
  void foo(int a) {

  
    a concat(=,@) 5; // message: =@ is not a legal symbol

  
  }

  
Tips

Check your macro definition. Generate a preprocessor output (option -Lp) to find the problem.