Danh mục

LẬP TRÌNH C nâng cao -BÀI 13 - RTTI, EXTERN VÀ PREPROCESSOR DIRECTIVE part 2

Số trang: 5      Loại file: pdf      Dung lượng: 130.82 KB      Lượt xem: 11      Lượt tải: 0    
Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

BÀI 13: RTTI, I/O, EXTERN VÀ PREPROCESSOR DIRECTIVE(tiếp theo) Các chỉ thị tiền xử lí : định nghĩa một macro (quá dễ rồi) #include: bao gồm một tập tin hay macro vào chương trình (quá dễ rồi) #undef: hủy bỏ định nghĩa một macro, macro đó có thể định nghĩa lại bằng #define ...
Nội dung trích xuất từ tài liệu:
LẬP TRÌNH C nâng cao -BÀI 13 - RTTI, EXTERN VÀ PREPROCESSOR DIRECTIVE part 2 LẬP TRÌNH C/C++ NÂNG CAOYêu cầu trước khi đọc: học xong Lập trình C/C++ căn bản BÀI 13: RTTI, I/O, EXTERN VÀ PREPROCESSOR DIRECTIVE (tiếp theo)Các chỉ thị tiền xử lí (preprocessor directive)#define: định nghĩa một macro (quá dễ rồi)#include: bao gồm một tập tin hay macro vào chương trình (quá dễ rồi)#undef: hủy bỏ định nghĩa một macro, macro đó có thể định nghĩa lại bằng#define, ví dụCODE#define max(a,b) ((a>b)?a:b)#undef max#define max(a,b) ((a>b)?2*a:3*b)#error: định nghĩa câu thông báo khi gặp lỗi, ví dụCODE#error bi loi roiint main(){int a = 10/0;}Câu thông báo lỗi sẽ là câu ta đã định nghĩa#pragma: các tùy chọn chỉ thị biên dịch (tùy thuộc vào trình biên dịch)Các chỉ thị điều kiệnBao gồm #if (nghĩa là if) #elif (nghĩa là else if) #else (nghĩa là else) #endif(nghĩa là end if) ví dụ đoạn mã sauCODE#if MAX_WIDTH>10#undef MAX_WIDTH#define MAX_WIDTH 10#elsif MAX_WIDTH#undef MAX_WIDTH#defines MAX_WIDTH 5#endifcó thể viết lại giống như sauCODEif(max_width>10){#undef max_width;max_width = 10;}else{if(max_width#ifndef MYHEADER_H#include myheader.h#endifNếu đã định nghĩa MYDEF_H thì định nghĩa thêm MYLIB_HNếu chưa định nghĩa MYHEADER_H thì bao gồm tập tin myheader.h vàomã nguồnViết lại dùng definedCODE#if defined(MYDEF_H)#define MYLIB_H#endif#if !defined(MYHEADER_H)#include myheader.h#endifChỉ thị #line__FILE__ là một macro đã định nghĩa sẵn, trả về đường dẫn của tập tin gọimacro__LINE__ là một macro đã định nghĩa sẵn, trả về thứ tự của dòng lệnh gọimacroCODE#includeusing namespace std;int main(){cout{cout}Chỉ thị toán tử #### gọi là merging operator directive, chỉ dùng với tham số của macro Nó sẽhợp (merge) tham số với chuỗi macro đã định nghĩa với nó, ví dụCODE#define merging(n) cout

Tài liệu được xem nhiều: