#include <stdio.h>
//不同的平台下引入不同的头文件
#if _WIN32 //识别windows平台
#include <windows.h>
#elif __linux__ //识别linux平台
#include <unistd.h>
#endif
int main() {
//不同的平台下调用不同的函数
#if _WIN32 //识别windows平台
Sleep(5000);
#elif __linux__ //识别linux平台
sleep(5);
#endif
puts("hello world!");
return 0;
}

要开发一个C语言程序,让它暂停 5 秒以后再输出内容,并且要求跨平台,在 Windows 和 Linux 下都能运行

这个程序的难点在于,不同平台下的暂停函数和头文件都不一样:

Windows 平台下的暂停函数的原型是void Sleep(DWORD dwMilliseconds)(注意 S 是大写的),参数的单位是“毫秒”,位于 <windows.h> 头文件。

Linux 平台下暂停函数的原型是unsigned int sleep (unsigned int seconds),参数的单位是“秒”,位于 <unistd.h> 头文件。

不同的平台下必须调用不同的函数,并引入不同的头文件,否则就会导致编译错误,因为 Windows 平台下没有 sleep() 函数,也没有 <unistd.h> 头文件,反之亦然。这就要求我们在编译之前,也就是预处理阶段来解决这个问题。

最新文章

  1. Delphi XE5-XE8 以上 如何发布文件到工程中
  2. ExpressQuantumGrid4的cxGrid的一些使用方法和经验
  3. NHibernate系列文章八:NHibernate对象一级缓存
  4. KMP算法中next函数的理解
  5. ps互补色
  6. Android 实现Path2.0中绚丽的的旋转菜单
  7. 选择排序O(n^2)与快速排序O(nlogn)的优越性代码体现
  8. linux打印彩色字
  9. css学习の第六弹—样式设置小技巧
  10. python文本操作—读、写
  11. wireshark基础学习—第二部分wireshark的基础操作
  12. SpringBoot 配置静态资源映射
  13. MapReduce-WordCount
  14. 最详细最全的redis配置文件解释
  15. Java获取后台数据,动态生成多行多列复选框
  16. python基础易错题
  17. 微软通过.NET Native为Windows Store应用提速
  18. skopt学习之路1-函数介绍:dummy_minimize
  19. C#中动态调用DLL动态链接库
  20. 非IE图片上传预览

热门文章

  1. 异步编程CompletableFuture
  2. A100计算能力
  3. Yolov4性能分析(下)
  4. 硬件安全模块如何启用AUTOSAR
  5. 编译原理-NFA转化成DFA
  6. 重新整理 .net core 实践篇—————异常中间件[二十]
  7. 5.22考试总结(NOIP模拟1)
  8. 【Python报错】ValueError: If using all scalar values, you must pass an index
  9. HTTP首部字段详解
  10. Binding(三):资源和ValueConverter