Double hash before parameter in function call

前端 未结 3 1757
我在风中等你
我在风中等你 2020-12-09 11:35

I see this line in C:

#define log(format, args...) snprintf(buffer + strlen(buffer), 1023 - strlen(buffer), format, ##args);

What does the

3条回答
  •  一生所求
    2020-12-09 12:16

    In standard C, the "##" is for concatenating tokens together within a macro. Here, this macro is not in standard C, but in "Gnu C", the dialect implemented by GCC. The "##" is used to remove the comma if the extra arguments (in args) turn out to be empty. See the GCC manual.

提交回复
热议问题