The whole purpose of the CAT... series of data step functions is to make it easier to convert variables into text and concatenate the text.
In macro code everything is text and you are always concatenating text. That is the basic operation of a macro processor!
So no need to complicate your program by adding in function calls that don't add any extra functionality.
In data step character variables are padded with spaces to fill the length of the variable. In a data step the automatic conversion from a number to a character string normally results in leading spaces. But in macro code you do not have spaces padded onto the ends of your macro variables, unless you worked extra hard to add them. So the trimming features of the CAT..() functions is not needed in macro code.
Also when you call a SAS function that can accept both numeric and character arguments the macro processor needs to figure out what type of value to pass to the function. It can get confused trying to do that and generate errors.
... View more