亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我對這條語句的理解是這樣的,請高手指點是否有理解錯誤。

我對這條語句的理解是這樣的,請高手指點是否有理解錯誤。

C
神不在的星期二 2022-11-18 21:17:05
if ((wParam = (WPARAM) CharUpper ((TCHAR *) wParam)) == VK_RETURN)首先(TCHAR *) wParam里的wParam是子窗口ID(被賦予ASCII碼的十進制100,也就是d)那么這里的強制轉換類型(TCHAR *) 是否就把100 變成'd'?然后用CharUpper 函數把d轉化為大寫的D,然后再用 (WPARAM)強制類型轉換把大寫D 再換成相應的ASCII碼68? 然后再把68賦給wParam 然后再做VK_RETURN的對比?還有種情況,比如CharUpper ()里放入的是個'=' 號呢? 或者是回車呢? 那么這個轉換會如何?
查看完整描述

2 回答

?
ibeautiful

TA貢獻1993條經驗 獲得超6個贊

應該是你說的那樣,如果輸入‘=’相信charUpper函數會報錯的,這條語句不會順利執行的

查看完整回答
反對 回復 2022-11-24
?
ITMISS

TA貢獻1871條經驗 獲得超8個贊

我給你測試了一下
 
#include 
#include 
using namespace std;
int main()
{
 char testChar='a';
 LPTSTR s=CharUpper((TCHAR *)testChar);
 char b=(WPARAM)s;
 cout<<b;
 system("pause");
 return 0;
}
輸出A;當testChar是‘=’時,輸出還是‘=’
 
經測試發現只有當時小寫字母時,輸出才是大寫字母,其他的字符不會發生變化


查看完整回答
反對 回復 2022-11-24
  • 2 回答
  • 0 關注
  • 145 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號