Ben*_*min 1 c++ static-analysis cppcheck
这是一条cppcheck警告消息。
变量 'BUFFER_INFO' 隐藏同名的 typedef
BUFFER_INFO 定义如下。
typedef struct tagBufferInfo
{
CRITICAL_SECTION cs;
Buffer* pBuffer1;
Buffer* pBuffer2;
Buffer* pLoggingBuffer;
Buffer* pSendingBuffer;
}BUFFER_INFO, *PBUFFER_INFO;
Run Code Online (Sandbox Code Playgroud)
我写道,
PBUFFER_INFO p = new BUFFER_INFO; // causes the warning.
Run Code Online (Sandbox Code Playgroud)
问题是什么?我该如何解决?
谢谢。
小智 5
这看起来可能是一个 cppcheck 错误。
但是......你写的是糟糕的C++风格,更喜欢:
struct BUFFER_INFO
{
CRITICAL_SECTION cs;
Buffer* pBuffer1;
Buffer* pBuffer2;
Buffer* pLoggingBuffer;
Buffer* pSendingBuffer;
};
Run Code Online (Sandbox Code Playgroud)
我还要观察到,将所有大写字母用于类型名称(这些通常为常量保留)并不是好的 C++ 风格,并且隐藏某些东西是指针这一事实的 typedef 通常不是一个好主意。