我计划使用Cygwin套件在Windows上使用Netbeans编写ANSI-C程序,稍后我想在UNIX系列操作系统上编译源代码并使用该程序。我应该担心任何类型的兼容性问题吗?
答案 0 :(得分:1)
存在可比性问题,但只要您坚持基本的unix功能,它们就应该可以管理命令行应用程序。但是,如果您的应用程序具有GUI或必须与unix环境中的其他程序进行交互,您可能会后悔自己的方法。
另一种方法是在桌面上的虚拟机中运行适当的unix风格,并且非常确定没有兼容性问题。
答案 1 :(得分:1)
如果仅使用C标准中描述的功能,则可能的不兼容性集通常会缩减为:
char
int
= long
= 32位在Windows中,在UNIX上不一定如此),我的意思是字面上全部,包括指针和{ {1}} enums
复制数据的方向(低到高地址或其他方式)等等memcpy()
或i+i++
,修改字符串文字,当指向的对象消失时指针取消引用(例如a[i]=i++
),不使用或滥用free()'d
和const
等等。volatile
- 与错误数量或参数类型的函数一样还有更多。你实际上必须阅读标准,并注意什么是有效的,什么不是,如果有任何条件。
如果您使用C标准之外的内容,则该功能可能在其他平台上不可用或相同。
所以,是的,这是可能的,但你必须要小心。通常,您所做的假设会使您的代码难以移植。