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
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?