Он, запретил звонящую классическую функцию C от Objective C ++ тело метода класса?

Я испытал некоторое странное поведение Objective C ++. У меня есть Objective C ++ класс, и он вызывает классическую функцию C в теле метода. Но компоновщик не может найти функцию C.

Я описал проблему здесь: символ печати XCode не нашел для моей функции C, которая использовала в теле метода Objective C

Я решил проблему путем изменения Objective C ++ класс к классу Objective C, но вопросом все еще остаются. Он, запретил вызов C, функционируют в Objective C ++ класс?

5
задан Community 23 May 2017 в 11:48
поделиться

1 ответ

Необходимо убедиться, что функции C объявлены

extern "C"

в соответствующем .h-файле.

Общий способ сделать это:

//
// foo.h
//

#ifndef __FOO_H__
#define __FOO_H__

#ifdef __cplusplus
extern "C" {
#endif

// ... your interface here - normal C function declarations etc ...

#ifdef __cplusplus
}
#endif

#endif
10
ответ дан 13 December 2019 в 22:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: