Linux内核代码使用“语句表达式”和typeof扩展,这使得它只能在gcc编译器下进行编译。
越想越觉得不合理。
这破坏了可移植性和标准C的目的。(现在Linux内核代码需要一个支持GCC扩展的特定编译器)。
这是一个错误的设计选择还是有特定原因让Linux内核代码只能用GCC编译?
编辑:我说它破坏了可移植性时,我在不同的上下文中使用了它。我想,通过符合标准C,它将被接受到支持标准C的任何编译器中(这正是创建标准的目的——统一所有不同的C方言),因此更具可移植性。当然,由于gcc如此受欢迎,并且gcc支持大量架构,所以这个问题几乎毫无意义。我只是想知道是否有一个不符合标准C的特定理由。
越想越觉得不合理。
这破坏了可移植性和标准C的目的。(现在Linux内核代码需要一个支持GCC扩展的特定编译器)。
这是一个错误的设计选择还是有特定原因让Linux内核代码只能用GCC编译?
编辑:我说它破坏了可移植性时,我在不同的上下文中使用了它。我想,通过符合标准C,它将被接受到支持标准C的任何编译器中(这正是创建标准的目的——统一所有不同的C方言),因此更具可移植性。当然,由于gcc如此受欢迎,并且gcc支持大量架构,所以这个问题几乎毫无意义。我只是想知道是否有一个不符合标准C的特定理由。