C++ 不要按值传递数组

有个国外团队检测了 200 多个 C/C++ 开源项目,包括了 Php、Qt 和 Linux 内核等知名项目。于是他们每天分享一个错误案例,并给出相应建议。本篇案例来自 Wolf 源代码

C++ 生成UUID

C++创建UUID的两种方法: std::string newGUID() { char buf[50]; memset(buf, 0, sizeof(buf)); GUID guid; if (S_OK == ::CoCreateGuid(&guid)) { sprintf_s(buf, 50, "{%08X-%04X-%04x-%02X%02X-%02X%02X%02X%02X%02X%02X}" , guid.Data1 , guid.Data2 , guid.Data3 , guid.Data4[0], guid.Data4[1] , guid.Data4[2], guid.Data4[3], guid.Data4[4], guid.Data4[5] , guid.Data4[6], guid.Data4[7]); } return std::string(buf); } 使用BOOST的话: #include <boost/uuid/uuid.hpp> #include <boost/uuid/uuid_generators.hpp> #include <boost/uuid/uuid_io.hpp>