宏¶
约 90 个字 8 行代码 预计阅读时间不到 1 分钟
常用的宏:
__FILE__文件名__LINE__行号__FUNSIG__函数签名(MSVC)__PRETTY_FUNCTION__函数签名(Clang/gcc)__func__函数名
宏函数¶
- 打印日志
此处必须使用宏定义函数
#define LOG(_logInfo, _logLevel) logWrite(_logInfo, _logLevel, __FILE__, __LINE__); enum class LogLevel { DEBUG, INFO, ERROR, FATAL }; void logWrite(string logInfo, LogLevel logLevel, string fileName, int line){ ... ... } int main(){ ... ... LOG("test infomation", LogLevel::DEBUG); ... ... }LOG的原因是,__LINE__是该宏所在的行的行数, 若把__LINE__写在logWrite函数里, 则输出的永远是logWrite函数体内有__LINE__所在的行号, 而不是logWrite函数调用处的行号.