首页 > 生活 > > 正文
2023-11-15 23:51:07

goto语句有害(goto语句)

导读 大家好,我是小夏,我来为大家解答以上问题。goto语句有害,goto语句很多人还不知道,现在让我们一起来看看吧!1、1、跳转呀,给一段代码,你...

大家好,我是小夏,我来为大家解答以上问题。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: 销毁几个指针

本文到此讲解完毕了,希望对大家有帮助。