Level 720 bài
C nâng cao nhất
Đọc được chuẩn C, hiểu mô hình bộ nhớ ở tầng chuẩn, làm chủ preprocessor và lập trình tổng quát.
Chương 51. C Standard
Lịch sử chuẩn, C99, C11, C23, và cách viết mã khả chuyển.
- 51.1Lịch sử các chuẩn CTừ K&R tới C23, và vì sao dự án của bạn vẫn đang dùng C99.24 phút
- 51.2C99, bước nhảy lớn nhấtKhai báo giữa khối, bool, khởi tạo chỉ định, compound literal, stdint.h.28 phút
- 51.3C11 và C23_Generic, _Static_assert, _Alignas, rồi nullptr, constexpr, typeof, #embed.30 phút
- 51.4Đọc chuẩn và viết mã khả chuyểnBản nháp N1570, cấu trúc tài liệu, và bảy giả định sai hay gặp.26 phút
Chương 52. Advanced Memory Model
Vòng đời đối tượng, căn chỉnh, kiểu hiệu dụng, compound literal.
- 52.1Vòng đời đối tượngBốn thời gian lưu trữ, và vì sao đọc một con trỏ treo cũng là UB.26 phút
- 52.2Căn chỉnh_Alignof, _Alignas, aligned_alloc, và vì sao ARM sập còn x86 chỉ chậm.28 phút
- 52.3Kiểu hiệu dụngBộ nhớ từ malloc chưa có kiểu, và lần ghi đầu tiên quyết định nó.28 phút
- 52.4Compound literal và thời gian sốngCùng một cú pháp, hai thời gian sống hoàn toàn khác nhau.24 phút
Chương 53. Struct Memory Layout
Bố cục, đệm, offsetof, container_of, packed và tuần tự hóa.
- 53.1Quy tắc bố cục structNăm quy tắc chuẩn bảo đảm, và cách tính sizeof bằng tay.26 phút
- 53.2Sắp xếp trường để tiết kiệm bộ nhớĐổi thứ tự khai báo, tiết kiệm ba mươi ba phần trăm, không đổi một dòng logic.26 phút
- 53.3offsetof, container_of và kiểm tra bố cụcTính ngược từ một trường ra đối tượng chứa nó, và chốt bố cục lúc dịch.26 phút
- 53.4Packed struct và cách tuần tự hóa đúngBa vấn đề của packed, và vì sao đừng dùng nó cho giao thức mạng.28 phút
Chương 54. Advanced Preprocessor
Macro hàm, biến đối số, nối, chuỗi hóa, X Macro.
- 54.1Macro hàm và các bẫyNgoặc, đánh giá nhiều lần, và do while (0).26 phút
- 54.2Macro biến đối số, nối và chuỗi hóa__VA_ARGS__, __VA_OPT__, toán tử # và ##.26 phút
- 54.3X MacroKhai báo danh sách một lần, sinh ra enum, bảng tên, bảng mô tả và hàm phân tích.30 phút
- 54.4Thủ thuật và cách gỡ lỗi macroARRAY_LEN an toàn, tên biến duy nhất, và bốn lệnh xem macro bung ra gì.26 phút
Chương 55. Generic Data Structures
Vector, danh sách, heap, cây, bảng băm bằng void * và con trỏ hàm.
- 55.1Thiết kế giao diện container tổng quátSáu kiểu con trỏ hàm, kiểu mờ, và tám nguyên tắc thiết kế thư viện.28 phút
- 55.2Vector và danh sáchHai container nền tảng, cài đầy đủ với void * và kiểm thử.30 phút
- 55.3Heap, cây và bảng bămBa container còn lại, và chỗ mỗi cái mạnh hơn hai cái kia.30 phút
- 55.4Project: thư viện cds hoàn chỉnhNăm container, một giao diện, bộ kiểm thử đầy đủ và tài liệu.32 phút