很少有人知道的c 中的try塊函式

2022-09-07 14:54:25 字數 777 閱讀 1739

c++有一些在現實世界中很少看到的結構。這些結構有著自己的用法,但是要特別小心保守的予以運用。就像是**

the old new thing首頁標題上面的說的那樣:

「**通常被讀的次數原因超過了被寫的次數,所以計畫要遵循此道。」

在下面將介紹一些很少有人能夠知道的c++建構函式,包括其中的運用場景,語法和陷阱。

運用場景

try函式塊的應用場景一般侷限於下面幾個:

(1)建構函式初始化列表;

(2)基類構造含資料;

(3)析構函式;

語法

對於函式

void f() try  catch (...)

這等價於

void f()  catch (...)  }

對於建構函式初始化列表

struct a : public b

catch (...)

private:

foo foo;

bar bar;

};

對於析構函式來說,跟正常函式的使用方法是類似的

struct a

catch (...)

};

陷阱

如上,try模組函式在進行**審查的時候至少是應該引起重視的。try塊函式使用並非都是錯的,在一些上沒有提到的使用者場景中用到的時候,很容易出現問題。

**

Linux核心編譯 很少有人提及的一些內容

1.你可以使用o 引數將編譯結果放到其他位置 非源 目錄 例如 make o build 這樣做的好處是你的源 目錄不會受到任何改變 你甚至可以在不同的體系結構間共享源 注意對每一條make命令都必須附加o 引數 2.指定arch和cross compile make arch arm cross ...

C中的語句塊

c語言中的語句塊 statement block 其實就是由 括起來的若干條語句。如 複製 這就是乙個語句塊,這個語句塊可以放到函式內,作為函式的乙個小單元。要注意的是,語句塊中也可以定義區域性變數,和函式的區域性變數同樣道理,每次進入語句塊時為變數i分配儲存空間,每次退出語句塊時釋放變數i的儲存空...

在C 中動態呼叫native dll的匯出函式

在 c 中我們能夠通過 loadlibrary,getprocaddress 來動態呼叫 dll 的匯出函式.在 c 中也能夠用這樣的方式嗎?在 dotnet 2.0 裡面這樣是可以的,這完全得益於 2.0新增的乙個函式 marshal.getdelegateforfunctionpointer 方...