2016-11-24 12 views
5
#include<STDIO.H> 

Đó là trường hợp cao hơn nhưng chương trình (biên dịch và) chạy không có lỗi trong ngôn ngữ C, nhưng C phân biệt chữ hoa chữ thường - làm thế nào điều này là có thể?Ngôn ngữ C hỗ trợ chữ cái viết hoa như thế nào mà không cung cấp hoặc cung cấp thông tin về chữ hoa trên trong chương trình

#include<STDIO.H> 
#include<CONIO.H> 
main() 
{ 
    printf("hello"); 
    getch(); 
} 
+2

1) Nếu câu hỏi này là về C, tại sao bạn đã gắn thẻ C++? 2) Có lẽ vì hệ điều hành của bạn không phân biệt chữ hoa chữ thường (có thể là - Windows). –

+4

Hỏi: Làm thế nào điều này có thể? A: trình biên dịch C tìm kiếm một tệp có tên là "stdio.h". Windows (hoặc DOS!) Không phân biệt giữa "STDIO.H" và "stdio.h" ... do đó trình biên dịch tìm thấy nó. Đây không phải là vấn đề "lập trình C"; đó là một vấn đề "OS nhạy cảm". – paulsm4

Trả lời

9

Điều này hoạt động nếu bạn đang sử dụng Windows hoặc hệ điều hành khác bỏ qua trường hợp trên hệ thống tệp của nó. Nó không hoạt động trên Linux và các hương vị Unix khác, bởi vì chúng quan tâm đến trường hợp (theo mặc định).

Khi bạn thêm câu lệnh bao gồm như #include <any_file.h>, thì trình biên dịch C sẽ yêu cầu hệ điều hành mở tệp any_file.h.

Nếu hệ điều hành của bạn không quan tâm đến trường hợp, thì nó sẽ mở bất kỳ tệp nào khớp với mẫu. Nếu nó, ví dụ, tìm thấy một tập tin có tên aNy_fILe.H, nó sẽ mở tập tin và trình bày nó vào trình biên dịch C.

Trình biên dịch C sẽ giải thích nội dung của tệp - đây là bit phân biệt chữ hoa/thường của ngôn ngữ C.

Các vấn đề liên quan