Co oznacza standard?
wrażliwość Sprawa w #include
dyrektyw jest kontrolowany przez implementację (kompilator/preprocesora). Jest to wyjaśnione w 16.2.2 [cpp.include]
Dyrektywa A obróbki wstępnej formy
# include < h-char-sequence> new-line
wyszukiwania sekwencji miejsc realizacji zdefiniowanej dla nagłówka jednoznacznie poprzez określonej sekwencji pomiędzy <
i >
ograniczniki i powoduje zastąpienie tej dyrektywy przez całą zawartość nagłówka. Sposób określania miejsc lub zdefiniowany nagłówek jest zdefiniowany przez implementację.
Podobnie 16.2.3 [cpp.include]
Dyrektywa przerób formy
# include " q-char-sequence" new-line
powoduje zastąpienie dyrektywy przez całą zawartość pliku źródłowego zidentyfikowanych w określonej sekwencji między ogranicznikami "
.Nazwany plik źródłowy jest wyszukiwany w sposób określony przez implementację. Jeśli wyszukiwarka nie jest obsługiwany, lub jeśli poszukiwania nie powiedzie, dyrektywa jest przetworzony tak, jakby czytać
# include < h-char-sequence> new-line
z identycznej sekwencji zawartych (w tym >
znaków, jeśli w ogóle) z pierwotnej dyrektywy.
naturalnym wyborem dla implementacji języka jest użycie wielkości liter systemu plików lub systemu operacyjnego, ale nie ma ścisły wymóg, aby to zrobić (jak wszystkie inne odpowiedzi sugerują).
Co to jest najlepsza praktyka, zachowaj wszystkie nazwy plików/folderów małymi literami, a tym samym wykonaj to samo, gdy w tym?
Najlepsza praktyka, jak zawsze: Zachowaj spójność. Jeśli w projekcie używasz plików źródłowych/nagłówkowych o różnych wielkościach, używaj ich i replikuj dokładnie obudowy w swoich dyrektywach #include
.
Właściwie jest to bardziej związane z systemem plików, w przeciwieństwie do systemu operacyjnego. Wartość domyślna jest taka, jak zdefiniowano powyżej. Ale w Linuksie jest większa wersja systemu plików, z których niektóre nie są wrażliwe na wielkość liter. –
@Martin: Tak, masz rację. Dziękuję za dokładną obserwację. –
Więc wrażliwość na wielkość liter nie jest określona przez C89/99/++ 11? czy standard mówi, że w ścieżkach wyszukiwania i nazwach plików nie ma znaczenia wielkość liter? –