[`__FUNCTION__`](https://link.segmentfault.com/?enc=wFw2Suavkc%2FXGW3EdLmBxw%3D%3D.KT15rhrPzxHlE5g2qfGwbThXZrW6kfkH%2FSHuK%2Bddy50A0hJjs4j3VjIfRBe1TKBdRAySMZj2U8Fu7MvqiOYESQ%3D%3D) `__FUNCTION__` 是一个变量,不是一个宏。现在标准里用的名字是 `__func__` 。 因为它是一个变量,所以它不能进行字符串拼接。 你可以用 `%s` 输出它: #define LOG(strFormat, ...) _LOG( "%s:" strFormat, __FUNCTION__, ##__VA_ARGS__)