1

これはcppcheck警告メッセージです。
変数'BUFFER_INFO'は、同じ名前のtypedefを非表示にします

BUFFER_INFOは次のように定義されます。

typedef struct tagBufferInfo
{
    CRITICAL_SECTION cs;
    Buffer* pBuffer1;
    Buffer* pBuffer2;
    Buffer* pLoggingBuffer;
    Buffer* pSendingBuffer;
}BUFFER_INFO, *PBUFFER_INFO;

そして私は書いた、

PBUFFER_INFO p = new BUFFER_INFO; // causes the warning.

何が問題ですか?どうすれば解決できますか?
ありがとう。

4

2 に答える 2

5

これはcppcheckのバグのようです。

ただし...あなたが書いたものは悪いC++スタイルです。

struct BUFFER_INFO
{
    CRITICAL_SECTION cs;
    Buffer* pBuffer1;
    Buffer* pBuffer2;
    Buffer* pLoggingBuffer;
    Buffer* pSendingBuffer;
};

また、型名にすべて大文字を使用するのは適切なC ++スタイルではなく(これらは通常定数用に予約されています)、何かがポインターであるという事実を隠すtypedefは通常は適切ではありません。

于 2010-07-28T07:09:38.703 に答える
1

C ++では、キーワードstructなしでStruct名を直接使用できるため、BUFFER_INFOである最初のtypedefは必要ありません。しかし、ポインタについては、まだそれを持つことができます。

于 2010-07-28T07:03:05.503 に答える