Tại sao lại có wanning ở đây ? Makefile
include guard trong sum.h
sai. Phải ghi là
#ifndef _SUM_H_
#define _SUM_H_
...
#endif
#ifndef
là “if not defined” (có chữ n) để kiểm tra xem _SUM_H_
có định nghĩa chưa, nếu chưa thì định nghĩa nó bằng dòng #define
ở dưới, còn nếu đã có định nghĩa _SUM_H_
rồi thì khỏi khai báo lại lần nữa.
Vậy để ifdef thì nghĩa là nếu include n thì cho các dòng bên dưới thực hiện. Nếu như để ifndef thì có nghĩa là k cần include à? Vì khi k include n mới chạy đám bên dưới mà.
Hi Trọng Dũng.
ifdef = if def : Nếu đã define rồi thì thêm đoạn code dưới.
ifndef = if not def : Nếu chưa define thì thêm doạn code dưới.
Khi bạn include file .h ở nhiều chỗ thường dẫn đến việc bạn khai báo nguyên mẫu hàm nhiều lần. Thêm ifndef thì bạn tự suy nghĩ xem.
1 Like