C預處理跨平台

2022-06-23 06:24:14 字數 618 閱讀 1462

#include //

不同的平台下引入不同的標頭檔案

#if _win32 //

識別windows平台

#include

#elif __linux__ //

識別linux平台

#include

#endif

intmain()

要開發乙個c語言程式,讓它暫停 5 秒以後再輸出內容,並且要求跨平台,在 windows 和 linux 下都能執行

這個程式的難點在於,不同平台下的暫停函式和標頭檔案都不一樣:

windows 平台下的暫停函式的原型是void sleep(dword dwmilliseconds)(注意 s 是大寫的),引數的單位是「毫秒」,位於 標頭檔案。

linux 平台下暫停函式的原型是unsigned int sleep (unsigned int seconds),引數的單位是「秒」,位於 標頭檔案。

不同的平台下必須呼叫不同的函式,並引入不同的標頭檔案,否則就會導致編譯錯誤,因為 windows 平台下沒有 sleep() 函式,也沒有 標頭檔案,反之亦然。這就要求我們在編譯之前,也就是預處理階段來解決這個問題。

Unity平台的預處理

在開發中,特別是unity的跨平台中,我們常常會在各個平台遊走,如安卓版,蘋果版,pc版.在此不同的平台上,有可能我們須要做不同的操作。然而我們就能夠用unity的自帶的平台巨集定義方式來做平台的推斷。unity幫我們定義了例如以下平台預處理 名稱描寫敘述 unity editor unity編輯器...

c 預處理和預處理命令

預處理發生在編譯之前,預處理輸出的是乙個單一的檔案,這個檔案被送到編譯器,進行編譯。每條預處理命令都控制預處理器的行為。每條預處理命令佔據一行,有以下的格式 character 預處理命令 one of define,undef,include,if,ifdef,ifndef,else,elif,e...

python處理跨平台應用

在工作中處理應用程式維護,遇到很多問題終於還是搞定了。記下,後面補充具體問題。coding gbk import psutil import re import sys import string import time import subprocess def startprocess cwd ...