C11 或 C99 中的库良好做法
library in C11 or C99 good practice
有什么更好的主意:在 C11 或 C99 中编写供其他人使用的库?许多人宁愿在项目中使用 C99 而不是 C11,这是否是一个很好的理由,或者事实并非如此?什么对微控制器更好?我不专业,我想找个理由不使用通用 C11 :P 谢谢你的帮助。我希望这不是 'silly' 问题。
对你编写的库要保守。您假定的功能越少,可以使用您的图书馆的人就越多。许多库都经过精心编写,只假设 ANSI C,因此它们可以在广泛的硬件上使用。这尤其适用于编译器经常过时且不真正符合标准的嵌入式系统。做事保守,接受事自由
对于嵌入式开发,我建议您只使用 C89 兼容功能,因为经常会看到带有旧开发工具的微控制器,甚至与 C99 不兼容。
对于 Windows 开发,最新版本的 Visual Studio 将支持大部分 C99 和其他编译器,但众所周知,旧版本的 Visual Studio 不兼容,因此您应该确定如果您的库针对的是受困于旧环境的程序员。
对于linux或者MaxOS,C99应该没问题。我怀疑您是否真的需要任何特定于 C11 的东西,并且假设您的用户都将拥有符合 C11 的编译器/库组合可能会有风险。
你只问C99和C11,但你确定你还需要C99吗?只要不使用过时的功能,仅使用 C89(又名 ANSI C)应该仍能正确编译 C99 和 C11。
有什么更好的主意:在 C11 或 C99 中编写供其他人使用的库?许多人宁愿在项目中使用 C99 而不是 C11,这是否是一个很好的理由,或者事实并非如此?什么对微控制器更好?我不专业,我想找个理由不使用通用 C11 :P 谢谢你的帮助。我希望这不是 'silly' 问题。
对你编写的库要保守。您假定的功能越少,可以使用您的图书馆的人就越多。许多库都经过精心编写,只假设 ANSI C,因此它们可以在广泛的硬件上使用。这尤其适用于编译器经常过时且不真正符合标准的嵌入式系统。做事保守,接受事自由
对于嵌入式开发,我建议您只使用 C89 兼容功能,因为经常会看到带有旧开发工具的微控制器,甚至与 C99 不兼容。
对于 Windows 开发,最新版本的 Visual Studio 将支持大部分 C99 和其他编译器,但众所周知,旧版本的 Visual Studio 不兼容,因此您应该确定如果您的库针对的是受困于旧环境的程序员。
对于linux或者MaxOS,C99应该没问题。我怀疑您是否真的需要任何特定于 C11 的东西,并且假设您的用户都将拥有符合 C11 的编译器/库组合可能会有风险。
你只问C99和C11,但你确定你还需要C99吗?只要不使用过时的功能,仅使用 C89(又名 ANSI C)应该仍能正确编译 C99 和 C11。