基于标准的API使用及Windows平台编译工具介绍
1. 标准特性及宏定义
在编程中,我们可以利用已实现的标准特性。目前支持的一些特性包括C++风格的注释,以及在条件表达式(出现在for、if、while和switch语句中)内进行局部变量声明。此外,该标准禁止默认将函数和变量声明为int类型,并允许在代码块内的任意位置声明变量,而不要求必须在代码块的第一条语句之前进行声明。需要注意的是,这个特性对C++代码没有影响。
还有一个宏定义 _GNU_SOURCE ,定义这个宏会引入之前描述的所有内容,包括ISO C89、ISO C99、POSIX.1、POSIX.2、BSD、SVID、X/Open以及GNU定义的扩展。如果POSIX.1和BSD之间存在冲突,POSIX的定义优先于BSD的定义。不过,应该避免使用这个宏,因为GNU扩展本质上是不可移植的。
2. 微软运行时库对POSIX的支持
Mac OS X和Linux的开发都基于GCC和其他GNU工具,因此在编译器和库支持的选择上没有太多需要考虑的。但在微软Windows系统上情况则完全不同。
早在20世纪90年代初Windows NT 3.51发布时,微软就公开承诺在一定程度上平等支持POSIX和Win32 API。Windows NT 2000、Windows XP和Vista本质上都是基于Windows NT的系统,同样适用这种架构。而像Windows 95、Windows 98和Windows Me这些非NT架构的Windows版本,微软已经不再提供支持,应用开发者也不应再继续支持。
以创建文件的API为例,在Win32中,通过调用
超级会员免费看
订阅专栏 解锁全文
2675

被折叠的 条评论
为什么被折叠?



