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?

Nguyễn Minh Dũng viết 18:46 ngày 30/09/2018

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:

stackoverflow.com
Litherum

What is the effect of extern "C" in C++?

c++, c, linkage, name-mangling
asked by Litherum on 02:10AM - 25 Jun 09

và ở đây

stackoverflow.com
dublev

Combining C++ and C - how does #ifdef __cplusplus work?

c++, c, c-preprocessor, extern-c
asked by dublev on 05:03PM - 24 Sep 10

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.

Bài liên quan
0