Tôi đang cố gắng hiểu đầy đủ quy trình viết mã chuyên nghiệp bằng một số ngôn ngữ để thực thi bằng hệ điều hành. Trong trường hợp của tôi, ngôn ngữ sẽ là C và hệ điều hành sẽ là Windows. Cho đến nay, tôi đã đọc nhiều bài viết khác nhau, nhưng tôi không chắc chắn, liệu tôi có hiểu đúng quy trình hay không và tôi muốn hỏi bạn liệu bạn có biết một số bài viết hay về một số chủ đề mà tôi không thể tìm thấy hay không.Một số câu hỏi C chung
Vì vậy, những gì tôi nghĩ rằng tôi biết về C (và các ngôn ngữ cơ bản khác):
C biên dịch này chỉ kiểm soát các kiểu dữ liệu, hoạt động toán học cơ bản, hoạt động con trỏ, và làm việc với chức năng. Bằng cách làm việc với các hàm tôi ngụ ý cách chuyển đối số cho nó, và làm thế nào để lấy kết quả từ hàm. Trong quá trình biên dịch, cuộc gọi chức năng được thay thế bằng cách chuyển đối số sang ngăn xếp và hơn nếu hàm không ở trong nội tuyến, cuộc gọi của nó được thay thế bằng một số ký hiệu cho trình liên kết. Linker hơn tìm định nghĩa hàm, và thay thế ký hiệu để nhảy địa chỉ đến hàm đó (và dĩ nhiên là nhảy trở lại chương trình).
Nếu thông tin trên nói chung là đúng và tôi hiểu đúng, nơi để tệp .exe cuối cùng thực sự liên kết lưu các chức năng? Sau hàm main()? Và điều gì tạo ra tiêu đề .exe? Trình biên dịch hoặc Trình liên kết? Bây giờ, các khả năng bổ sung của C, ngày nay được gọi là thư viện standart C là tập hợp các hàm và các khai báo của chúng, mà các lập trình viên khác đã viết để mở rộng và đơn giản hóa việc sử dụng ngôn ngữ C. Nhưng những chức năng này như printf() là (hoặc có thể?) Được viết bằng ngôn ngữ khác, hoặc người lắp ráp. Và có câu hỏi tiếp theo của tôi, có thể được, ví dụ như printf() chức năng được viết bằng tinh khiết C mà không cần sử dụng assembler?
Tôi biết đây là câu hỏi khá lớn, nhưng tôi hầu như chỉ muốn biết, tôi có đúng hay không. Và tin tôi đi, tôi đã đọc rất nhiều bài báo trên web, và tôi sẽ không hỏi bạn, Nếu tôi có thể tìm thấy những thông tin này cùng nhau ở một nơi, trong một bài báo. Insted tôi phải mảnh bằng cách thu thập thông tin, vì vậy tôi không chắc chắn nếu tôi là đúng. Cảm ơn.
Tôi khuyên bạn nên học chương trình trước. Bất kỳ cuốn sách lập trình tốt nào cũng sẽ cho bạn biết quy trình chung về liên kết và biên dịch. –