C庫中結構體的封裝方法

當我們編寫C語言庫時,如果定義了某個結構體,並且庫的使用者需要使用到這個結構體,但我們又不希望結構體的結構暴露在外,可以採用如下方式:1.在.c文件中定義結構體2.頭文件中使用typedef爲這個結構體定義別的名稱。這樣庫的使用者只需使用這個別名,而無需(也無法)知道結構體成員有哪些。上面講的有點繞,給個示意圖。

 在使用openssl的庫的時候可以看到這種用法

我們只能定義指向EVP_CIPHER_CTX的指針,而不能定義該結構體變量,否則會提示“不允許使用不完整的類型”

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章