30/09/2018, 16:36
What is the mean of extern "C" { ... }?
Em thấy người ta làm thư viện thường có dòng này:
#ifndef CTEST_H
#define CTEST_H
#ifdef __cplusplus
extern "C" { //what's this?
#endif
void (*ctest1)(int *);
void (*ctest2)(int *);
#ifdef __cplusplus
}
#endif
#endif
Nó có nghĩa là gì vậy anh @ltd?
Bài liên quan
Dòng
extern "C"
là dùng để compile code C++ nhưng có thể tương thích được với code C.Việc thông báo này sẽ cho phép code C có thể gọi được hàm viết bởi C++.
Chi tiết:
What is the effect of extern "C" in C++?
và ở đây
Combining C++ and C - how does #ifdef __cplusplus work?
Cách làm này thường được áp dụng khi mình viết thư viện C++ nhưng sẽ cho phép chương trình sử dụng C sử dụng lại thư viện viết bằng C++ kia.