ETH官方钱包

前往
大廳
主題

C在編譯時(shí)帶入的變數(shù),補(bǔ)充不同平臺(tái)之間的路徑問(wèn)題

Yang | 2023-02-12 23:31:25 | 巴幣 0 | 人氣 240

斜線/

反斜線\,在C/C++/C#等語(yǔ)言中通常要加上跳脫字元才能呈現(xiàn),就是原始碼字串上寫"\\",會(huì)輸出\,
但是我在windows上使用MinGW測(cè)試出不同情況,還不清楚原因?紀(jì)錄如下


檔案路徑的呈現(xiàn),目前只找到只有windows是以\作為分隔符,其他平臺(tái)都是以/作分隔

但測(cè)試發(fā)現(xiàn)windows平臺(tái)輸入上支援/,譬如:
C:\Windows\SysWOW64\notepad.exe
C:/Windows/SysWOW64/notepad.exe
C:\Windows/SysWOW64\notepad.exe
C:\Windows\SysWOW64/notepad.exe
都能啟動(dòng)筆記本

深入追查,MinGW專案,在windows平臺(tái),路徑也是寫/,譬如:
#include <sys/timeb.h>
#include <sys/types.h>

自行寫程式測(cè)試,輸出前一篇寫的__FILE__路徑:
static const int GetFilePath(char *buffer)
{
    return sprintf(buffer, "%s", __FILE__);
}

測(cè)試1:
#include "Tools/Functions.h"

測(cè)試1結(jié)果:
"\Tools/Functions.h"

測(cè)試2:
#include "Tools\Functions.h"

測(cè)試2結(jié)果:
"\Tools\Functions.h"

測(cè)試3:
#include "Tools\\Functions.h"

測(cè)試3結(jié)果:
"\tools\functions.h"

本來(lái)以為測(cè)試2會(huì)無(wú)法編譯,因?yàn)橹挥幸粋€(gè)\,結(jié)果正常編譯正常輸出

本來(lái)以為測(cè)試3會(huì)輸出測(cè)試2的結(jié)果,卻變成輸出全小寫的路徑,原因不明?

結(jié)論,在其他平臺(tái)以/作為路徑分隔符,但windows平臺(tái)不確定,先模仿MinGW,
但也要針對(duì)讀寫檔情況再補(bǔ)充更多測(cè)試,避免又出現(xiàn)其他非預(yù)期的情況
送禮物贊助創(chuàng)作者 !
0
留言
追蹤 創(chuàng)作集

作者相關(guān)創(chuàng)作

相關(guān)創(chuàng)作

更多創(chuàng)作