答案 0 :(得分:4)
实际上,API只是某些现有(参考或样本)实现的记录的接口。
理论上,人们可以抽象地设计API。在没有任何实现的情况下实际执行此操作是一个代价高昂的错误(因为没有实现,您将不会考虑很多细节)。
另请阅读undefined behavior。
请注意,纯标准C++11没有提供与外界交互的太多内容:C ++ 11标准不了解目录,键盘,鼠标,屏幕,声音,网络,GUI等。您的操作系统可能有更多相关的其他特定库。了解有关POSIX的更多信息,可以理解为操作系统服务的standardized API(遗憾的是,MicroSoft销售的某些专有操作系统不是本机 POSIX兼容;据传,你可能会为他们的Windows操作系统购买一些类似POSIX的界面,这些界面有自己的Windows API)。
如果要实现某些功能,您需要熟悉目标平台,即您要支持的操作系统。对于Linux,请开始阅读Advanced Linux Programming,intro(2),syscalls(2),intro(3)等...并详细研究free software实施的源代码(请参阅例如sourceforge ...)与您的目标相关。
如果您想要跨平台(例如能够在Linux和MacOSX上编译相同的代码),请更好地使用&利用现有的跨平台框架,例如Qt或POCO,或(如果它们与您的需求相关)libsdl或SFML。这些框架使用了一些特定于操作系统的API(并尝试在它们之上定义一些常见的抽象)。
PS。在实践中,设计一个好的API是一项困难的艺术。记录它是必不可少的。如果可能的话,让您的实现免费软件,并尝试获得建议和帮助。