Register error handler
Vd hệ thống thanh toán (payment gateway) User mua hàng –> Payment Service –> VNPay/MoMo, có thể phát sinh lỗi như mất mạng, timeout,… Thay vì mỗi chỗ tự xử lý Ta đăng ký error handler một lần.
share to be shared 😎
Lập trình C/C++
Vd hệ thống thanh toán (payment gateway) User mua hàng –> Payment Service –> VNPay/MoMo, có thể phát sinh lỗi như mất mạng, timeout,… Thay vì mỗi chỗ tự xử lý Ta đăng ký error handler một lần.
friend function là một hàm không nằm trong class, nhưng được phép truy cập vào tất cả thành phần private và protected của lớp. Ưu điểm Nhược điểm Truy cập trực tiếp dữ liệu private/protected. Phá vỡ tính đóng gói (Encapsulation). Hữu ích khi overload operator. Tạo sự phụ thuộc giữa các lớp/hàm. Giúp các … Read more
enum, struct, class và namespace dùng để gom nhóm các hằng số, hàm, hoặc logic liên quan. So sánh nhanh Cách dùng Mục đích gom nhóm Kiểm tra kiểu Phạm vi tên Mở rộng logic Dễ dùng bitmask enum Gom nhóm hằng số nguyên Không Không Không Có enum class Gom nhóm hằng số nguyên … Read more
So sánh C và C++ malloc vs calloc Trong C, cả malloc và calloc đều dùng để cấp phát bộ nhớ động, nhưng chúng có một vài điểm khác biệt quan trọng malloc thường nhanh hơn vì không cần gán giá trị ban đầu, nhưng calloc tiện lợi khi muốn vùng nhớ sạch (tránh lỗi … Read more
Giữ symbol names (biên dịch với -g và link với -rdynamic trên Linux), nên dùng cả 2 để có đầy đủ tên hàm + số dòng. Debug symbol “-g” để thêm thông tin debug (file, line). Linking flags “-rdynamic" để export symbol names để backtrace() hoặc addr2line có thể ánh xạ địa chỉ bộ nhớ … Read more
1. Debug symbols (nm), Debug info (objdump) là gì ? Khi biên dịch C++ chương trình, compiler tạo ra symbol table (bảng ánh xạ địa chỉ → tên hàm/biến). Debug symbols : tên hàm, tên biến, địa chỉ, symbol table, loại symbol (T, U, D, B) Debug info : thông tin mở rộng: file, line … Read more
memcpy, memset strcpy, + operator free new delete
Dùng fopen (thư viện C) thay vì ofstream. Trong Linux, hàm fopen được dùng để mở một file và trả về một con trỏ kiểu FILE* fopen: mở file với tên và chế độ (ví dụ "r" để đọc, "w" để ghi, "a" để ghi nối thêm).