gì xảy ra nếu tôi xác định chức năng của tôi trong tập tin .h của tôi nhưĐiều gì sẽ xảy ra với chức năng nội tuyến bên ngoài?
extern int returnaint(void);
, định nghĩa nó trong file .c liên quan như
inline int returnaint(void) {
return 1;
}
và bao gồm các tiêu đề trong một file .c và sử dụng chức năng? Khi tôi biên dịch những thứ seperatly, tạo một tệp đối tượng cho mỗi tệp .c và sau đó liên kết chúng, có phải là hàm nội tuyến được bao gồm hay điều gì xảy ra?
Tôi biết trình biên dịch có thể bỏ qua inline
, nhưng điều gì sẽ xảy ra nếu nó không bỏ qua nó trong trường hợp này?
Sau đó, bạn nhận được một lỗi mối liên kết. –
@ H2CO3, sẽ không bao giờ có lỗi liên kết. Đơn vị biên dịch với định nghĩa 'inline' cũng thấy một khai báo' extern', vì vậy biểu tượng phải được phát ra. Xin vui lòng xem câu trả lời của tôi. –
@JensGustedt Cảm ơn, đã bỏ phiếu. –