偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

調(diào)用函數(shù)不僅僅只是傳遞正確的參數(shù)類型,你學(xué)會(huì)了嗎?

開發(fā) 前端
經(jīng)驗(yàn)豐富的程序員還是會(huì)搖頭。僅僅因?yàn)楹瘮?shù)原型說(shuō)參數(shù)是 LPDWORD 并不意味著你必須有一個(gè)類型為 LPDWORD 的變量。實(shí)際上,你只需要一個(gè)類型為 LPDWORD 的表達(dá)式。

這里有一個(gè)新手犯下的一個(gè)典型錯(cuò)誤。
假設(shè),我們想調(diào)用這個(gè)函數(shù),GetBinaryType。

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

請(qǐng)問,這里的問號(hào)處應(yīng)該傳遞什么類型的參數(shù)?你可能會(huì)說(shuō),這事兒不難。根據(jù)這個(gè)函數(shù)的原型描述,它的第二個(gè)參數(shù)是一個(gè) LPDWORD,所以,我可以這樣傳遞參數(shù):

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

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

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

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

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

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

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

終于,代碼可以跑起來(lái)了。好,我們看下一個(gè)問題。

當(dāng)然,經(jīng)驗(yàn)豐富的程序員還是會(huì)搖頭。僅僅因?yàn)楹瘮?shù)原型說(shuō)參數(shù)是 LPDWORD 并不意味著你必須有一個(gè)類型為 LPDWORD 的變量。實(shí)際上,你只需要一個(gè)類型為 LPDWORD 的表達(dá)式。

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

不會(huì)吧,就這么簡(jiǎn)單?為什么我要花功夫講這個(gè)主題呢?

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

總結(jié)

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

責(zé)任編輯:武曉燕 來(lái)源: 今日頭條
相關(guān)推薦

2019-03-01 10:42:10

折疊手機(jī)iPhone智能手機(jī)

2010-03-03 14:42:54

ASP.NET MVC

2016-05-13 19:05:24

2017-09-28 17:20:17

榮之聯(lián)DataZoohadoop

2013-08-21 10:04:32

大數(shù)據(jù)Gartner

2009-11-28 20:08:20

谷歌ChromeWeb應(yīng)用

2018-07-06 15:07:17

2023-11-29 07:23:04

參數(shù)springboto

2023-11-08 10:12:40

架構(gòu)函數(shù)元素

2023-06-15 14:10:00

kubeletCNI插件

2024-02-02 11:03:11

React數(shù)據(jù)Ref

2024-01-02 12:05:26

Java并發(fā)編程

2023-08-01 12:51:18

WebGPT機(jī)器學(xué)習(xí)模型

2022-11-03 08:16:33

MySQL·窗口函數(shù)

2024-12-31 00:08:37

C#語(yǔ)言dynamic?

2022-07-08 09:27:48

CSSIFC模型

2024-01-19 08:25:38

死鎖Java通信

2023-07-26 13:11:21

ChatGPT平臺(tái)工具

2023-01-10 08:43:15

定義DDD架構(gòu)

2024-02-04 00:00:00

Effect數(shù)據(jù)組件
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)