What is the mm##
meant in C code? For example:
#define REGISTER(addr) *((volatile unsigned int *)(addr))
#define abc(reg) REGISTER(mm##reg)
What is the mm##
meant in C code? For example:
#define REGISTER(addr) *((volatile unsigned int *)(addr))
#define abc(reg) REGISTER(mm##reg)
Per the gcc docs:
The ‘##’ preprocessing operator performs token pasting. When a macro is expanded, the two tokens on either side of each ‘##’ operator are combined into a single token, which then replaces the ‘##’ and the two original tokens in the macro expansion. Usually both will be identifiers, or one will be an identifier and the other a preprocessing number. When pasted, they make a longer identifier. This isn’t the only valid case. It is also possible to concatenate two numbers (or a number and a name, such as 1.5 and e3) into a number. Also, multi-character operators such as += can be formed by token pasting.
In your case, it's creating a new identifier prefixed with the characters mm
.