回覆列表
-
1 # 學好玩
-
2 # 此使用者名稱可以用
想象一下普通話和方言,或者漢語和外語,如果表達的是相同的意思,那麼就必須用相同的意思來表達,Windows作業系統本身對檔名大小寫不敏感,那麼在其中執行的程式也必須大小寫不敏感,無論用什麼語言實現——不然就會給使用者帶來困擾,從商業推廣角度看會如何就清楚了。
-
3 # 夜上星星
程式設計師讓它敏感就敏感,程式設計師讓它不敏感就不敏感。
比如對每一個字元都這樣操作:
if(c=="e"||c=="E")
{
//執行功能程式
}
來判斷是不是字母E,不區分大小寫。
-
4 # ymismy
c是語言,本身是區別大小寫的。Windows是執行檔案,這是兩回事。而編譯成執行檔案後的Windows對檔名大小寫不作區別,主要是為了相容以前的dos。Windows的一部分就是的DOS。
-
5 # 工號1024
Windows上的區分大小寫實際上是透過應用開啟檔案的方式實現的。NTFS是區分大小寫的檔案系統,能夠順暢的儲存檔案,相同的檔名僅在同一目錄中按大小寫做區分。
在Windows上,最終是透過CreateFile API來開啟所有檔案,如果FILE_FLAG_POSIX_SEMANTICS flag被傳遞做呼叫,那麼會根據具體的名稱匹配來開啟檔案;如果FILE_FLAG_POSIX_SEMANTICS未被傳遞,那麼檔案系統會開啟不做大小寫區分的檔案,並同時開啟一個名稱匹配的檔案。如果有多個,就不去明確哪個是實際被開啟的。
Windows上大多數C和C ++執行實現都不對接於上述機制,並且從不使用flag,因此要訪問區分大小寫行為的唯一方法是直接使用Windows API。
你怎麼這麼確定Windows是用c寫的呢?我見過一部分原始碼,其實很大一部分是asm,還有vb。但是大小寫不敏感這個,也許是為了相容dos作業系統吧。