我正在开发一个假设是跨平台的项目。由于我希望在Windows环境中易于使用,我决定支持Microsoft C编译器。这意味着大多数代码必须遵守最早的C标准。
我想知道在包含unix环境实现的源中使用更高的C标准并使用基本源和Windows源中的最低标准是否是个好主意。通过这种方式,我可以为使用Microsoft编译器编译的源代码提供更多的自由。
以下是一个例子:
# uses -pedantic
src/file1.c
src/file2.c
# uses -pedantic
src/windows/file3.c
src/windows/file4.c
# may use -std=c99 or -std=gnu99
src/unix/file5.c
src/unix/file6.c
但是,这会违反风格一致性吗?
它会严重影响函数中变量的位置。在unix源代码中,大多数变量将在首次需要时声明。在基础和窗口源上,它们都必须放在函数的顶部。