Objective-C和C 代码的ANSI C代码
ANSI C code for both Objective-C and C++ code?
在我的项目中,有3种可能的文件类型:纯C/Objective-C,Pure C 或Objective-C 代码。
如何将.H文件中的函数用#define
指令将功能分为部分,以使所有这些文件可用于此文件?由于重构问题,我不想将所有.m文件重命名为.mm。
我知道我可以在C中使用C .cpp文件使用以下代码写入.h文件:
#ifndef Chadstone_CCCWrapper_h
#define Chadstone_CCCWrapper_h
#ifdef __cplusplus
#include <string.h>
extern "C"
{
#endif
void minMaxCoordinates(char *c, float *minX, float *minY, float *maxX, float *maxY);
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif
但是,如果我想使用NSString
或list<...>
。
您可以在由Xcode撰写的标准PCH文件中找到它:
#ifdef __OBJC__
#endif
还需要在声明功能时使用CF_EXPORT
宏来防止链接错误。
示例:
#ifndef SOME_H_FILE
#define SOME_H_FILE
#ifdef __OBJC__
@interface SomeObjClass: NSObject
@end
CF_EXPORT void SomeFunctionWithNSString(NSString* str);
#endif
#ifdef __cplusplus
class SomeCPlusPlustClass
{
};
CF_EXPORT void someFunctionWithList(const list<int>& intList);
#ifdef __OBJ__
CF_EXPORT void someComplicatedFunction(NSString* str, const list<int>& intList);
#endif
#endif
CF_EXPORT void someFunction();
typedef struct _SomeStruct
{
} SomeStruct;
#endif
相关文章:
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 代码在main()中运行,但在函数中出现错误
- 在VS代码中交叉编译Windows与Linux上的MinGW的SDL程序
- 编译包含字符串的代码时遇到问题
- 我在c++代码中生成了一个运行时#3异常
- 如何在linux终端中同时编译和运行c++代码
- 为cl.exe(Visual Studio代码)指定命令行C++版本
- 在Linux for Windows上编译C++代码时出错
- 我的字符计数代码计算错误.为什么
- 孤立代码块在结构中引发异常
- 在编译C++代码(具有dlib和opencv)到WASM时面临问题
- C 如何使用WriteConsoleoutput使用ANSI逃生代码
- Objective-C和C 代码的ANSI C代码
- 为什么Visual Studio在调试时对ANSI Escape代码有不同的处理方式
- 在编译/运行时将字符串文本的原始字节流入/流出Windows(非宽)执行字符集,以及ANSI代码页与UTF-8
- 如何确保我的代码是ansi C,不涉及C++.像gcc这样的编译器是否可以设置为在满足C++中的功能时提示错误
- Apple C++ LLVM Compiler 4.x & UNICODE:何时需要?UNICODE 是默认编译器字符集吗?使代码同时编译 ANSI 和 UNICODE 版本
- ANSI代码页中wchar_t char之间的转换
- 这是有效的 ANSI C++代码吗?尝试在编译时生成结构成员的偏移量
- 如果我包含"-ansi"编译器选项,为什么我的 C++0x 代码无法编译?