?? 2-2.txt
字號:
我來描述一下這段代碼的含義。請僅留意代碼風格,你就會發現apr_前綴,apr_前綴表示該符號在libapr命名空間里。你也會發現_t后綴,它表示該符號是一個類型名。
apr_tool_t是不透明類型,這意味著其結構不是公共的,用面向對象的術語來說,也就是所有的成員變量都是私有的,你不能直接訪問不透明類型的結構中的成員。并且在公共的頭文件中,你也看不到不透明類型的定義。你對這個類型僅僅能做的事就是調用諸如apr_foo_bar()等這些API函數。非常重要的一點,你不能直接為不透明類型的實例分配內存(譯者注:因為編譯器只看到了其聲明卻沒有發現其定義,因此不知道不透明類型占用內存的大小,用sizeof也無濟于事),而只能調用相應的構造API。只有libapr知道如何去構造和析構這些對象。
apr_pool_create()函數返回的類型是apr_status_t,apr_status_t是狀態碼或是錯誤碼,它被廣泛地作為大多數API函數的返回類型。我們也可以從函數的輸出參數中得到結果,這樣的輸出參數被稱為結果參數,在libapr中有很多的結果參數。
通常情況下,如果你看到了apr_foo_t類型,那么你將會看到與之關聯的apr_foo_bar()函數。下面是一段很典型的偽代碼片斷:
/* libapr偽代碼,省略了錯誤的檢測 */
apr_status_t rv;
apr_foo_t *foo;
rv = apr_foo_create(&foo, args...); /* 借助@args來創建@foo */
rv = apr_foo_do_something(foo, args...); /* 使用@foo */
apr_foo_destroy(foo); /* 銷毀@foo對象。后面你將會發現,有時這個操作被與之關聯的內存池隱含完成了 */
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -