Tôi đang cố gắng học C và tôi rất bối rối.Chức năng C cụ thể hoạt động như thế nào?
Trong ngôn ngữ OOP tôi đã sử dụng, có khả năng thực hiện quá tải phương thức, trong đó cùng một chức năng có thể có các loại tham số khác nhau và gọi tùy chọn nào phù hợp nhất.
Bây giờ trong C tôi biết rằng đây không phải là trường hợp vì vậy tôi không thể tìm ra vấn đề sau, Cách printf() hoạt động.
Ví dụ:
char chVar = 'A';
int intVar = 123;
float flVar = 99.999;
printf("%c - %i - %f \n",chVar, intVar, flVar);
printf("%i - %f - %c \n",intVar, flVar, chVar);
printf("%f - %c - %i \n",flVar, chVar, intVar);
Bây giờ là C does'nt chức năng hỗ trợ quá tải, như thế nào printf quản lý thực hiện bất kỳ số lượng các đối số, của bất kỳ loại, và sau đó làm việc một cách chính xác với họ?
Tôi đã cố gắng tìm printf() hoạt động bằng cách tải xuống gói nguồn glibc nhưng có vẻ khá có thể tìm thấy nó, mặc dù tôi sẽ tiếp tục tìm kiếm.
Có ai ở đây giải thích cách C thực hiện tác vụ trên không?
Nếu bạn muốn biết thêm, hãy đọc các quy ước gọi và ngăn xếp –
Câu hỏi của bạn là về C, nhưng bạn nói "Tôi đang cố gắng học C++." Nếu bạn đang cố gắng tìm hiểu C++, tốt nhất là bắt đầu bằng cách tránh các phần C của ngôn ngữ (và ở mức cao hơn của trừu tượng mà C++ dành), sau đó một khi bạn cảm thấy thoải mái với điều đó, để đào sâu vào các phần khác của ngôn ngữ . –
Nếu bạn không muốn phải lo lắng về điều này thì hãy chuyển '-Wformat' làm đối số cho g ++. Các trình biên dịch khác nên, tôi nghĩ/hy vọng/mong đợi, có cảnh báo tương tự. Điều này sẽ làm cho trình biên dịch kiểm tra xem các loại có phù hợp hay không. –