成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

調用函數不僅僅只是傳遞正確的參數類型,你學會了嗎?

開發 前端
經驗豐富的程序員還是會搖頭。僅僅因為函數原型說參數是 LPDWORD 并不意味著你必須有一個類型為 LPDWORD 的變量。實際上,你只需要一個類型為 LPDWORD 的表達式。

這里有一個新手犯下的一個典型錯誤。
假設,我們想調用這個函數,GetBinaryType。

void sample()
{
if (GetBinaryType(TEXT(“explorer.exe”), ????)) {
…
}
}

請問,這里的問號處應該傳遞什么類型的參數?你可能會說,這事兒不難。根據這個函數的原型描述,它的第二個參數是一個 LPDWORD,所以,我可以這樣傳遞參數:

void sample()
{
if (GetBinaryType(TEXT(“explorer.exe”), (LPDWORD)NULL)) {
…
}
}

如果像上面那個傳遞參數,則程序會崩潰。好吧,也許我們可以像下面這樣傳遞一個 LPDWORD 參數。

void sample()
{
LPDWORD lpdw;
if (GetBinaryType(TEXT(“explorer.exe”), lpdw)) {
…
}
}

程序再次崩潰。哦,不對,這里的變量沒有初始化,我們將它先初始化再試試。

void sample()
{
LPDWORD lpdw = NULL;
if (GetBinaryType(TEXT(“explorer.exe”), lpdw)) {
…
}
}

程序依然崩潰。等會,我知道怎么得到一個有效的 LPDWORD,像下面這樣。

void sample()
{
LPDWORD lpdw = new DWORD;
if (GetBinaryType(TEXT(“explorer.exe”), lpdw)) {
…
}
}

終于,代碼可以跑起來了。好,我們看下一個問題。

當然,經驗豐富的程序員還是會搖頭。僅僅因為函數原型說參數是 LPDWORD 并不意味著你必須有一個類型為 LPDWORD 的變量。實際上,你只需要一個類型為 LPDWORD 的表達式。

void sample()
{
DWORD dw;
if (GetBinaryType(TEXT(“explorer.exe”), &dw)) {
…
}
}

不會吧,就這么簡單?為什么我要花功夫講這個主題呢?

不,我不是想要侮辱你的智商。我試圖讓你像新手一樣思考。有時你會閱讀一大塊代碼并發現一些奇怪的東西,比如上面帶有新 DWORD 的代碼。當你這樣做時(例如,在調試該代碼序列中的內存泄漏問題時),不要試圖為完成簡單任務的看似迂回的方式找到一些深刻的含義。如果你能像新手一樣思考,你只會認識到這是一個典型的初學者錯誤,糾正它,然后繼續你的生活。

總結

深刻理解函數調用的機制,需向下探索到匯編代碼層級,底層摸透之后,回頭再看,便覺得一切都是那么自然。
正所謂:道法自然。

責任編輯:武曉燕 來源: 今日頭條
相關推薦

2019-03-01 10:42:10

折疊手機iPhone智能手機

2010-03-03 14:42:54

ASP.NET MVC

2016-05-13 19:05:24

2017-09-28 17:20:17

榮之聯DataZoohadoop

2013-08-21 10:04:32

大數據Gartner

2009-11-28 20:08:20

谷歌ChromeWeb應用

2018-07-06 15:07:17

2023-11-29 07:23:04

參數springboto

2010-03-23 10:59:14

2024-12-31 00:08:37

C#語言dynamic?

2023-11-08 10:12:40

架構函數元素

2022-07-08 09:27:48

CSSIFC模型

2024-01-19 08:25:38

死鎖Java通信

2024-02-04 00:00:00

Effect數據組件

2023-07-26 13:11:21

ChatGPT平臺工具

2023-01-10 08:43:15

定義DDD架構

2015-05-14 14:17:28

拿工資寫代碼

2023-06-15 14:10:00

kubeletCNI插件

2023-12-05 17:57:13

nginx參數

2022-11-03 08:16:33

MySQL·窗口函數
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 一区二区三区国产视频 | 亚洲一区二区三区四区在线观看 | 激情五月综合 | 久久精品中文字幕 | 国产精品永久免费 | 中文字幕99 | 日一区二区 | 日韩午夜一区二区三区 | 免费成人午夜 | 久久人体视频 | 国产玖玖 | 午夜影院污 | 国产一区二区免费 | 成人免费一区二区三区视频网站 | 国产韩国精品一区二区三区 | 亚洲乱码国产乱码精品精98午夜 | 美日韩免费 | 91亚洲精选 | 日韩看片 | 成人欧美在线 | 欧美精品在线播放 | 99亚洲精品 | 日韩激情在线 | 国产视频二区 | 日本成人片在线观看 | 亚洲交性 | 99精品免费久久久久久久久日本 | 91精品国产美女在线观看 | 三极网站 | www.4hu影院| 国产精品欧美一区二区三区不卡 | 91高清视频在线观看 | 亚洲人成人一区二区在线观看 | 成人av片在线观看 | 久久99精品国产 | 久久小视频| 色久五月 | 殴美成人在线视频 | 成人在线不卡 | 毛片一区| 欧美午夜激情在线 |