types - 为什么一些像 nginx 和 pcap 这样的开源项目使用自己的 'nginx_uint_t' 和 'bpf_u_int32' 而不是内置类型 'unsigned int'

标签 types nginx libpcap

这些天我正在处理 libpcap 和 nginx 源代码。
我想知道这样的事情:

  • 在 libpcap 中,他们使用自己的 unsigned int 类型 bpf_u_int32
  • 在 nginx 中,他们使用自己的 unsinged int 类型 ngx_int_t还有

  • 与内置类型相比,这些用法的优势是什么?

    最佳答案

    一般来说,它是关于控制复杂性。一些代码库需要跨多个平台运行。有时原因是代码发展到包含更多平台,而在其他情况下,代码从它需要在多个平台上运行的前提开始。

    无论如何,一个好的架构模式是降低对其他系统/库/平台/编译器等的依赖。这允许依赖于平台的代码保持在很小的地方,而不是渗透到整个代码库中。

    因此,当您将代码移动到新平台时,需要返工的代码量会保持较少。

    总而言之,这与可维护性的成本有关,它不是 Elixir ,而是一种经过验证的架构模式。

    关于types - 为什么一些像 nginx 和 pcap 这样的开源项目使用自己的 'nginx_uint_t' 和 'bpf_u_int32' 而不是内置类型 'unsigned int',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20041525/

    相关文章:

    c - QNX Neutrino 的 libpcap 库在哪里?

    types - 是否有任何 JavaScript 库可以为 Hyperapp 添加类型安全性?

    haskell - 为什么您不能(完全)应用具有使用其他类型同义词的参数的类型同义词?

    http - Nginx 不接受字节范围

    java - 将子域从 AWS ELB 传递到应用程序服务器

    windows - Pcap 和 WinPcap 有多相似?

    linux - Libnet 缺少一些定义标志

    c# - 关于字符串是原始类型的分歧

    java - 嵌套类型的通配符

    linux - 将 node.js 应用程序部署到 linux 服务器时是否必须需要 Nginx?