8 © 2004, HOÀNG MINH SƠN Chương 2: Các yếutố cơ bảncủaC vàC++ Bổ sung file mã nguồn và soạnthảo 5 Cửasổ soạnthảo Cửasổ bàn làm việc/ dự án Cửasổ thông báo kếtquả (biên dịch,…) Các công cụ biên dịch và liên kết 9 © 2004, HOÀNG MINH SƠN Chương 2: Các yếutố cơ bảncủaC vàC++ Qui tắcsoạnthảomãnguồn 1. Tên biến, tên hàm, tên kiểumới: Tránh sử dụng các từ khóa và tên kiểucơ sở Các ký tự dùng ₫ược: ‘A’ ’Z’, ‘a’ ’z’, ‘0’ ’9’, ‘_’ Phân biệtgiữachữ hoavàchữ thường: n khác N Ngắnnhưng ₫ủ khả năng phân biệt, gợinhớ₫ểnhậnbiết Sử dụng tiếng Anh hoặctiếng Việt không dấu(kể cả dòng chú thích) 2. Sau mỗicâulệnh có chấmphảy; 3. Đoạn{ …} ₫ược coi là nhóm lệnh, không có dấu chấmphảysau₫ó, trừ trường hợp khai báo kiểu 4. Cấutrúcmãnguồntheokiểuphâncấp => dễ₫ọc 5. Bổ sung chú thích ₫ầy ₫ủ, hợp lý (/* …*/ hoặc //) 6. Chia mộtfile lớn thành nhiềufile nhỏ 10 © 2004, HOÀNG MINH SƠN Chương 2: Các yếutố cơ bảncủaC vàC++ Các từ khóa trong C auto double int struct break else long switch case enum register typedef char extern return union const float short unsigned continue for signed void default goto sizeof volatile do if static while 11 © 2004, HOÀNG MINH SƠN Chương 2: Các yếutố cơ bảncủaC vàC++ Từ khóa trong C++ asm auto bool break case catch char class const const_cast continue default delete else extern do enum false double explicit float dynamic_cast export for friend goto if inline int long mutable namespace new operator private protected public register reinterpret_cast return short signed sizeof static static_cast struct switch template this throw true try typedef typeid typename union unsigned using virtual void volatile wchar_t while 12 © 2004, HOÀNG MINH SƠN Chương 2: Các yếutố cơ bảncủaC vàC++ Biên dịch (compile) Biên dịch từng file nguồnriêngbiệt (*.c: C compiler, *.cpp: C++ compiler), kếtquả => *.obj Trong Visual C++: Gọi Compile (Ctrl + F7) ₫ể biên dịch riêng rẽ hoặc Build (F7) ₫ể kếthợpbiêndịch và liên kếtchotoànbộ dự án Các kiểulỗibiêndịch (compile error): —Lỗicúpháp: Sử dụng tên sai qui ₫ịnh hoặcchưa khai báo, thiếu dấuchấmphảy ;, dấu ₫óng } —Lỗikiểu: Các số hạng trong biểuthứckhôngtương thích kiểu, gọi hàm vớithamsố sai kiểu —… Các kiểucảnh báo biên dịch (warning): —Tự₫ộng chuyển ₫ổikiểulàmmất chính xác — Hàm khai báo có kiểutrả về nhưng không trả về —Sử dụng dấu = trong trường hợpnghivấnlàso sánh== —… 13 © 2004, HOÀNG MINH SƠN Chương 2: Các yếutố cơ bảncủaC vàC++ Liên kết (link) yy.lib MyLib2.obj xx.obj MyProg.obj MyLib1.obj MyProg.exe Liên kết là quá trình ghép nhiềufile ₫ích (*.obj, *.lib) ₫ể tạora chương trình chạycuối cùng *.exe Trong Visual C++: Gọi Build (F7) Lỗi liên kếtcóthể là do: —Sử dụng hàm nhưng không có ₫ịnh nghĩahàm —Biếnhoặchàm₫ược ₫ịnh nghĩa nhiềulần —… 14 © 2004, HOÀNG MINH SƠN Chương 2: Các yếutố cơ bảncủaC vàC++ Chạythử và gỡ rối (debug) Chạythử trong Visual C++: Execute hoặc Ctrl+F5 Tìm lỗi: —Lỗi khi chạylàlỗithuộcvề phương pháp, tư duy, thuậttoán, không phảivề cú pháp —Lỗi khi chạybìnhthường không ₫ược báo —Lỗi khi chạyrất khó phát hiện, vì thế trong ₫asố trường hợp cầntiếnhànhdebug. Chạy Debug trong Visual C++: —Chạytớichỗ₫ặt cursor: Ctrl+F10 —Chạytừng dòng lệnh: F10 —Chạyvàotronghàm: F11 —Chạytiếpbìnhthường: F5 —Xemkếtquả dướicửasổ Output hoặcgọiQuickWatch . void volatile wchar_t while 12 © 20 04, HOÀNG MINH SƠN Chương 2: C c yếutố c bảncủaC v C+ + Biên dịch (compile) Biên dịch từng file nguồnriêngbiệt (* .c: C compiler, *.cpp: C+ + compiler), kếtquả. c biên dịch và liên kết 9 © 20 04, HOÀNG MINH SƠN Chương 2: C c yếutố c bảncủaC v C+ + Qui tắcsoạnthảomãnguồn 1. Tên biến, tên hàm, tên kiểumới: Tránh sử dụng c c từ khóa và tên kiểucơ sở C c ký. 8 © 20 04, HOÀNG MINH SƠN Chương 2: C c yếutố c bảncủaC v C+ + Bổ sung file mã nguồn và soạnthảo 5 C asổ soạnthảo C asổ bàn làm vi c/ dự án C asổ thông báo kếtquả (biên dịch,…) C c c ng c biên