⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 2-2.txt

📁 这是用C写的中文分词程序
💻 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 + -