大家好,我是小夏,我来为大家解答以上问题。goto语句有害,goto语句很多人还不知道,现在让我们一起来看看吧!
1、
1、跳转呀,给一段代码,你看看:
2、int main(int argc, char* argv[])
3、{
4、 IXMLDOMDocument *pXMLDom=NULL;
5、 IXMLDOMParseError *pXMLErr=NULL;
6、 BSTR bstr = NULL;
7、 VARIANT_BOOL status;
8、 VARIANT var;
9、 HRESULT hr;
10、 CoInitialize(NULL);
11、 pXMLDom = DomFromCOM();
12、 if (!pXMLDom) goto clean;
13、 VariantInit(&var);
14、 V_BSTR(&var) = SysAllocString(L"stocks.xml");
15、 V_VT(&var) = VT_BSTR;
16、 HRCALL(pXMLDom->load(var, &status), "");
17、 if (status!=VARIANT_TRUE) {
18、 HRCALL(pXMLDom->get_parseError(&pXMLErr),"");
19、 HRCALL(pXMLErr->get_reason(&bstr),"");
20、 dprintf("Failed to load DOM from stocks.xml. %S ",
21、 bstr);
22、 goto clean;
23、 }
24、 HRCALL(pXMLDom->get_xml(&bstr), "");
25、 dprintf("XML DOM loaded from stocks.xml: %S ",bstr);
26、clean:
27、 if (bstr) SysFreeString(bstr);
28、 if (&var) VariantClear(&var);
29、 if (pXMLErr) pXMLErr->Release();
30、 if (pXMLDom) pXMLDom->Release();
31、 CoUninitialize();
32、 return 0;
33、}
34、看到没有, 程序结束时都要经过 clean: 销毁几个指针
本文到此讲解完毕了,希望对大家有帮助。