gpt4 book ai didi

c++ - 警告 C26454 : Arithmetic overflow: '-' operation produces a negative unsigned result at compile time (io. 5)

转载 作者:太空狗 更新时间:2023-10-29 20:51:13 26 4
gpt4 key购买 nike

代码分析:

ON_NOTIFY(TCN_SELCHANGE, IDC_TAB_HISTORY_TYPE,
&CAssignHistoryDlg::OnTcnSelchangeTabHistoryType)

警告 C26454:

Arithmetic overflow: '-' operation produces a negative unsigned result at compile time (io.5).

TCN_SELCHANGE的定义是:

#define TCN_FIRST (0U-550U)
#define TCN_SELCHANGE (TCN_FIRST - 1)

我不知道我还能做什么!

最佳答案

//windows header file:
#define TCN_FIRST (0U-550U)
#define TCN_SELCHANGE (TCN_FIRST - 1)

//user file:
...
unsigned int i = TCN_SELCHANGE;

以上代码在 C++ 中是有效的,它应该在没有任何警告的情况下编译。没有溢出,这只是意味着 -550U 如果他们将其写为 #define TCN_FIRST 0xFFFFFFDDA0xFFFFFFFFU-549U 会更清楚>

代码分析似乎使用了不同的方法并发现了溢出。

可能的解决方案:

禁用代码中的警告:

#pragma warning( push )
#pragma warning( disable : 26454 )

BEGIN_MESSAGE_MAP(CMyDialog, CDialogEx)
ON_NOTIFY(TCN_SELCHANGE, IDC_TAB1, OnTcnSelchangeTabHistoryType)
END_MESSAGE_MAP()

#pragma warning( pop )

或者,禁用代码分析规则中的警告
Use the code analysis rule set editor

enter image description here

关于c++ - 警告 C26454 : Arithmetic overflow: '-' operation produces a negative unsigned result at compile time (io. 5),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51139422/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com