C語言跨平台寫法

C 語言跨平台是門專業的學問,為什麼這麼說呢?
因為平常一般開發者要開發跨平台程式的話,一開始就可以選擇跨平台的應用程式框架,例如:Qt
就很少遇到跨平台改寫的問題了。

但是將現有的產品程式碼移植或改成跨平台,
就會遇到跨平台改寫的問題,
不過畢竟是少數人才會遇到的經驗,
所以以下將我遇到的經驗紀錄一下,

通常有幾個api最容易遇到,例如:sleep,開 thread 執行緒,tmux 鎖,
以下將逐一介紹:

sleep

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#if defined(_WIN32)
#include <Windows.h>
#else
#include <unistd.h>
#endif

inline void sleep(int milliseconds)
{
#if defined(_WIN32)
Sleep(milliseconds);
#else
usleep(milliseconds * 1000);
#endif
}

參考
https://github.com/libimobiledevice/libusbmuxd/blob/c724e70fb52ba45291dc73a2e369c0c5bae0ec2e/src/libusbmuxd.c#L57
https://github.com/vurtun/mmx/blob/f0ef47edc2077bc498880f7d3032c37e68f79219/tests/web_test.c#L52

其它相關文章推薦
C/C++ 新手入門教學懶人包