Super Group For 4 IT
Bạn có muốn phản ứng với tin nhắn này? Vui lòng đăng ký diễn đàn trong một vài cú nhấp chuột hoặc đăng nhập để tiếp tục.


Super Group For 4 IT
 
Trang ChínhPortalLatest imagesTìm kiếmĐăng kýĐăng Nhập
Mong các bạn xem và góp ý dùm mình. https://sgit4.forumvi.com/forum-f2/topic-t64.htm....Thanks tất cả... ZHE64848 ZHE6448 .*** :hsjs67yw37yw:ZHE6448***
Tìm kiếm
 
 

Display results as :
 
Rechercher Advanced Search
Latest topics
» English Tooltip 3.0
Các preprocessor directive, xây dựng file header, Macro, và tổ chức chương trình C Icon_minitimeThu Sep 15, 2011 8:38 pm by Admin

»  Cho cuộc sống..Ngày hôm nay!
Các preprocessor directive, xây dựng file header, Macro, và tổ chức chương trình C Icon_minitimeWed Apr 20, 2011 5:23 pm by gianggiangonline

» Giáo trình C cực hay và cơ bản...
Các preprocessor directive, xây dựng file header, Macro, và tổ chức chương trình C Icon_minitimeFri Apr 08, 2011 11:58 am by Admin

» C618311R12
Các preprocessor directive, xây dựng file header, Macro, và tổ chức chương trình C Icon_minitimeSat Mar 19, 2011 2:25 pm by Admin

» Cách nhìn mới về cuộc sống
Các preprocessor directive, xây dựng file header, Macro, và tổ chức chương trình C Icon_minitimeWed Mar 16, 2011 3:32 pm by gianggiangonline

» Bài giải C #
Các preprocessor directive, xây dựng file header, Macro, và tổ chức chương trình C Icon_minitimeMon Mar 07, 2011 12:06 am by Admin

» Lịch học chính trị cuối khóa
Các preprocessor directive, xây dựng file header, Macro, và tổ chức chương trình C Icon_minitimeSun Feb 13, 2011 9:41 am by cuong_handsome

» Tìm hiểu về RED5
Các preprocessor directive, xây dựng file header, Macro, và tổ chức chương trình C Icon_minitimeThu Jan 20, 2011 4:49 pm by Admin

» Giúp đỡ anh em tìm hiểu các chức năng của Forum........
Các preprocessor directive, xây dựng file header, Macro, và tổ chức chương trình C Icon_minitimeThu Jan 20, 2011 10:14 am by gianggiangonline

Navigation
 Portal
 Diễn Đàn
 Thành viên
 Lý lịch
 Trợ giúp
 Tìm kiếm

Share | 
 

 Các preprocessor directive, xây dựng file header, Macro, và tổ chức chương trình C

Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down 
Tác giảThông điệp
hieutin4
Tập bò
Tập bò


Tổng số bài gửi : 4
Điểm_Cấp_Bậc : 13
Cấp bậc : 1
Join date : 06/04/2010

Các preprocessor directive, xây dựng file header, Macro, và tổ chức chương trình C Vide
Bài gửiTiêu đề: Các preprocessor directive, xây dựng file header, Macro, và tổ chức chương trình C   Các preprocessor directive, xây dựng file header, Macro, và tổ chức chương trình C Icon_minitimeTue Apr 06, 2010 6:25 pm

Nếu bạn không có làm việc với nhiều người, bạn không xây dựng các chương trình C/C++ gồm nhiều người, không xây dựng các chương trình C/C++ bởi nhiều modulus, nhiều file ghép lại. thì có lẽ điều sau đây, bạn chưa cần quan tâm lắm.

Để chúng ta có thể xây dựng lên một chương trình C/C++ lớn, bao gồm nhiều người cùng xây dựng, ... Những vấn đề sau, có lẽ sẽ là những vấn đề cần quan tâm tới

Trong C/C++, dấu thăng (#) được gọi là Preprocessor operator (Tạm dịch để hiểu là: Toán tử tiền xử lý)

Preprocessor directives gồm có: (Việt Nam thường được gọi là: Các chỉ thị tiền xử lý)

Code:
# (null directive) #ifdef
#define #ifndef
#elif #include
#else #line
#endif #if
#error #undef
#pragmaVà một vài directive ở VC++ nữa là: #using, #import

Các bài sau, Dr sẽ giới thiệu sơ sơ về cách sử dụng Preprocessor directive, và ứng dụng cụ cụ thể như thế nào. OK?
#include

Đây là chỉ thị bao gộp. Thông thường khi bắt đầu học C/C++ bạn cũng đã biết đến directive này, với ý nghĩa bao gộp một tệp nào đó.

C code:Lựa chọn code | Ẩn/Hiện code
Syntax (Cú pháp):
#include <header_name>
#include "header_name"
#include macro_identifierVí dụ 1:
C code:Lựa chọn code | Ẩn/Hiện code
#include <stdio.h>
#include <iostream>Ví dụ 2:
C code:Lựa chọn code | Ẩn/Hiện code
#include "MyConio.h"
#include "MyConsoleIO"Ví dụ 3:
C code:Lựa chọn code | Ẩn/Hiện code
#define MyHeaderFile "D:\BORLANDC\MYFOLDER\MyConio.H"
/*OK */
#include MyHeaderFileVề cơ bản #include directive dùng để bao gộp một file code nào đó. Trước khi biên dịch, Compiler sẽ tìm file này, sau đó chèn vào file nguồn tại vị trí đặt #include. Nếu không tìm thấy thì sẽ báo lỗi: Unable to open include file "header_name"

Các vấn đề khác về #include sẽ được nói đến ở một phần khác.

#define


Code:
Syntax:
#define macro_identifier <token_sequence>#define directive định nghĩa một macro. Macro cung cấp cho ta một kỹ thuật thay thế có hoặc không có 'bộ' chính thức, thay thế giống các tham số của hàm.

Nguyên bản: The #define directive defines a macro. Macros provide a mechanism for token replacement with or without a set of formal, function-like parameters.

Một token_sequence rỗng sẽ cho kết quả là macro identifier sẽ không được sử dụng trong mã nguồn.

Ví dụ:
C code:Lựa chọn code | Ẩn/Hiện code
#define Hi "Have a nice day!" // Thay thế chuỗi "Have a nice day!" bởi macro Hi

#define STDIO #include<stdio.h> //Chú ý: Không được có khoảng trắng giữa các macro. Định nghĩa: #define STD IO #include<stdio.h> là không được như muốn

#define EMPTY // Nếu trong mã nguồn có EMPTY, nó sẽ không được sử dụng.

#define max(a,b) ((a)>(b)?(a):(b))
Trích dẫn:
Chú ý: Không để các khoảng trắng như thế này max (a,b) để định nghĩa hàm max(a,b) như trên.
Nên đưa vào cặp () trong biểu thức để macro sử dụng được an toàn.
Đối của macro không khai báo kiểu, nên hàm macro được định nghĩa, có thể dùng với bất cứ kiểu dữ liệu nào

Một số tình huống với #define

Tình huống 1:
C code:Lựa chọn code | Ẩn/Hiện code
#define MAX 1000

printf("MAX"); // Sẽ in lên màn hình là MAX chứ không phải là 1000Tình huống 2:
C code:Lựa chọn code | Ẩn/Hiện code
#define product(x,y) x*y

product(5+6,10); //sẽ cho kết quả là 5+6*10=65 chứ không phải là 110.Định nghĩa một khối lệnh:
Nghiên cứu thông qua ví dụ sau:
C code:Lựa chọn code | Ẩn/Hiện code
#define HelloWorld {
clrscr();
printf("Hello world!");
printf("\nChao mung ban den voi cong dong C Viet");
}

//Cách sử dụng:
int main()
{
HelloWorld
return 0;
}Hoặc ví dụ:
C code:Lựa chọn code | Ẩn/Hiện code
#define EXIT {printf("\The End"); exit(0);} // Tạo câu lệnh để thoát chương trìnhTình huống không tốt:
Nếu bạn không có cặp dấu {} bọc các khối lệnh lại, sẽ gặp phải tình huống không như muốn. Ví dụ:
C code:Lựa chọn code | Ẩn/Hiện code
#define EXIT printf("\The End"); exit(0);

Sử sụng:
if(a==0) EXIT // Sẽ không cho kết quả như mong muốn. a!=0 nó vẫn thoát chương trình.
Câu lệnh trên sẽ hiểu là: if(a==0) printf("\The End"); exit(0);Để dễ hình dung, bạn cứ hình dung về #define directive như sau:
#define A B // Thay thế B bởi A. Trong mã nguồn có A, thì compiler sẽ hiểu chỗ đó có nghĩa là B. A và B cách nhau bằng một khoảng trắng

#undef


Code:
Syntax:
#undef macro_identifierBạn có thể bỏ định nghĩa(undefine) một macro bằng sử dụng #undef directive. #undef bỏ đi bất cứ token_sequence trước đó từ macro_identifier; macro_definition đã bị quên, và macro_identifier là coi như chưa được định nghĩa. Không có macro_identifier mở rộng nào trong phạm vi của dòng chứa #undef.

Sau khi một macro_identifier đã được bỏ định nghĩa(undefined), nó có thể được định nghĩa lại với #define, sử dụng giống hoặc khác token_sequence.

Ví dụ:
C code:Lựa chọn code | Ẩn/Hiện code
#define BLOCK_SIZE 512 //Định nghĩa BLOCK_SIZE = 512
//Làm cái gì đó với BLOCK_SIZE đã được định nghĩa.

#undef BLOCK_SIZE

#define BLOCK_SIZE 256 //Định nghĩa lại BLOCK_SIZE, sau khi đã bỏ định nghĩa ở trên.
Trích dẫn:
Lưu ý:Các câu lệnh của preprocessor directive không có dấu kết thúc câu lệnh ( ; ) ở cuối

còn nữa các bạn tự ngiên cứu nhé
__________________

__________________
Về Đầu Trang Go down
thangbomhu
Tập bú sữa
Tập bú sữa


Tổng số bài gửi : 1
Điểm_Cấp_Bậc : 1
Cấp bậc : 0
Join date : 12/04/2010
Age : 37
Đến từ : hai phong

Các preprocessor directive, xây dựng file header, Macro, và tổ chức chương trình C Vide
Bài gửiTiêu đề: Re: Các preprocessor directive, xây dựng file header, Macro, và tổ chức chương trình C   Các preprocessor directive, xây dựng file header, Macro, và tổ chức chương trình C Icon_minitimeMon Apr 12, 2010 7:10 pm

ko hieu gi ca
Về Đầu Trang Go down
hungmittq
Nghiên Cứu Sinh
Nghiên Cứu Sinh
hungmittq

Tổng số bài gửi : 43
Điểm_Cấp_Bậc : 76
Cấp bậc : 0
Join date : 05/04/2010
Age : 33
Đến từ : Tuyên Quang

Các preprocessor directive, xây dựng file header, Macro, và tổ chức chương trình C Vide
Bài gửiTiêu đề: Re: Các preprocessor directive, xây dựng file header, Macro, và tổ chức chương trình C   Các preprocessor directive, xây dựng file header, Macro, và tổ chức chương trình C Icon_minitimeTue Apr 13, 2010 4:10 pm

Đúng là hiếu có khác. post bài nào anh em không hiểu bài đấy luôn, khó quá.
Về Đầu Trang Go down
Admin
Phó Giáo Sư
Phó Giáo Sư
Admin

Tổng số bài gửi : 153
Điểm_Cấp_Bậc : 342
Cấp bậc : 16
Join date : 04/04/2010
Age : 34
Đến từ : Viet Nam

Các preprocessor directive, xây dựng file header, Macro, và tổ chức chương trình C Vide
Bài gửiTiêu đề: Re: Các preprocessor directive, xây dựng file header, Macro, và tổ chức chương trình C   Các preprocessor directive, xây dựng file header, Macro, và tổ chức chương trình C Icon_minitimeTue Apr 13, 2010 4:29 pm

Thật khủng...
Heheh...
Phải Thanks Hùng mới được, heheh.. Lên 1 cấp đấy....
:ZH67G
Về Đầu Trang Go down
http://vn.360plus.yahoo.com/buixuantruong_89/
phamxuantuong
Kỹ Sư
Kỹ Sư
phamxuantuong

Tổng số bài gửi : 56
Điểm_Cấp_Bậc : 98
Cấp bậc : 3
Join date : 09/04/2010
Age : 33
Đến từ : hải dương

Các preprocessor directive, xây dựng file header, Macro, và tổ chức chương trình C Vide
Bài gửiTiêu đề: Re: Các preprocessor directive, xây dựng file header, Macro, và tổ chức chương trình C   Các preprocessor directive, xây dựng file header, Macro, và tổ chức chương trình C Icon_minitimeFri Apr 16, 2010 4:38 pm

Trời ơi mấy bài ông Hiếu đưa lên tôi càng đọc càng không hiểu, ông ơi đưa cái gì nó dễ dễ chút cho anh em còn ngâm cứu, chứ đưa mấy cái này lên thi chịu hẳn ZHE643 ZHE643 ZHE643 ZHE643 ZHE643 ZHE643 ZHE643 ZHE643 ZHE643 ZHE643 ZHE643 ZHE643 ZHE643 ZHE643 ZHE643 ZHE643 ZHE643
Về Đầu Trang Go down
Sponsored content




Các preprocessor directive, xây dựng file header, Macro, và tổ chức chương trình C Vide
Bài gửiTiêu đề: Re: Các preprocessor directive, xây dựng file header, Macro, và tổ chức chương trình C   Các preprocessor directive, xây dựng file header, Macro, và tổ chức chương trình C Icon_minitime

Về Đầu Trang Go down
 

Các preprocessor directive, xây dựng file header, Macro, và tổ chức chương trình C

Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang 
Trang 1 trong tổng số 1 trang

Permissions in this forum:Bạn không có quyền trả lời bài viết
Super Group For 4 IT :: CLB Học Tập :: Kì 4 :: Kĩ Thuật Lập Trình-