1、檢查內存泄漏:
頭文件
// MS Visual C++ memory leak debug tracing #if defined(_MSC_VER) && defined(_DEBUG) # define _CRTDBG_MAP_ALLOC # include <crtdbg.h> #endif
source文件
// MS Visual C++ memory leak debug tracing #if defined(_MSC_VER) && defined(_DEBUG) _CrtSetDbgFlag(_CrtSetDbgFlag(_CRTDBG_REPORT_FLAG) | _CRTDBG_LEAK_CHECK_DF); #endif
2、使用c++11 新特性:
// C++11 override #if defined(_MSC_VER) || (defined(__GNUC__) && (__GNUC__ >= 5)) \ || (defined(__clang__) && (defined (__cplusplus)) && (__cplusplus >= 201103L)) \ || defined(__CPPCHECK__) # define OVERRIDE override #else # define OVERRIDE #endif // C++11 noexcept #if (defined(__GNUC__) && (__GNUC__ >= 5)) \ || (defined(__clang__) && (defined (__cplusplus)) && (__cplusplus >= 201103L)) \ || defined(__CPPCHECK__) # define NOEXCEPT noexcept #else # define NOEXCEPT #endif // C++11 noreturn #if (defined(__GNUC__) && (__GNUC__ >= 5)) \ || (defined(__clang__) && (defined (__cplusplus)) && (__cplusplus >= 201103L)) \ || defined(__CPPCHECK__) # define NORETURN [[noreturn]] #else # define NORETURN #endif
3、獲取當前時間的time stamp. 獲取的是當前區時下的當前時間。(秒級)
time_t now = time(0); tm ltm; localtime_s(<m, &now); std::string sRet; char sRetBuf[80]; sprintf_s(sRetBuf, sizeof(sRetBuf), "%4d/%02d/%02d %02d:%02d:%02d", (1900 + ltm.tm_year), (1 + ltm.tm_mon), (ltm.tm_mday), ltm.tm_hour, ltm.tm_min, ltm.tm_sec);
gmtime_s 和localtime_s 區別:
(1).gmtime將time_t轉換為UTC時間,UTC的全稱為Coordinated Universal Time,即世界標准時間。
(2).localtime將time_t轉換為本地時間(local time)。北京時間比UTC時間早8小時。
Note: 獲取毫秒級的當前時間可以用getsystemtime();
SYSTEMTIME st;
GetSystemTime(&st);