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

时间:2013-11-18 06:33:28

标签: types nginx libpcap

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

  1. 在libpcap中,他们使用自己的unsigned int类型bpf_u_int32
  2. 在nginx中,他们也使用自己的unsinged int类型ngx_int_t
  3. 与内置类型相比,这些用法的优势是什么?

1 个答案:

答案 0 :(得分:3)

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

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

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

总而言之,它是关于可维护性的成本,它不是一个神奇的子弹,而是一种经过验证的架构模式。