__VA_ARGS__ 是一个可变参数的宏,这个可变参数的宏是新的C99规范中新增的,目前似乎只有gcc支持(VC6.0的编译器不支持)。宏前面加上##的作用在于,当可变参数的个数为0时,这里的##起到把前面多余的","去掉的作用,否则会编译出错
__FILE__ %s 宏在预编译时会替换成当前的源文件名,当前源代码文件全路径
__FUNCTION__宏在预编译时会替换成当前的函数名称
__func__%s 当前函数签名
__LINE__ %d 在源代码文件中当前所在行数,宏在预编译时会替换成当前的行号
__PRETTY_FUNCTION__ %s 像 __func__,但是包含了C++代码中的隐形类型信息
链接:
时间: 2024-10-19 18:36:18