Why 'payloadsegment[0]' is not a legal c identifier name,but payloadseqment_0_ ?!

This warning is generated by Questa’s built-in UVM-aware debug facilities. In order to use the debugging tools, the UVM created paths need the ability to be parsed by the command line. All vendor tools have this problem. You can ignore these warnings if you do not plan to use these debug facilities.

Note that the upcoming UVM 1.2 standard plans to require proper identifier names, not just any string. You will get an error if you do not fix them. See 404