从Objective C调用C

and*_*oot 2 c objective-c

我是客观c&c的新手.我试图在一个客观的c程序中使用这个随机生成器c库.我的理解是,目标c是c的严格超集,所以这应该是可能的.

我的代码编译并运行但我得到了很多警告.

  • 警告:函数'mt_seed32'的隐式声明
  • 警告:函数'mt_lrand'的隐式声明
  • 警告:语义问题:函数'mt_seed32'的隐式声明在C99中无效
  • 警告:语义问题:函数'mt_lrand'的隐式声明在C99中无效
  • 警告:语义问题:使用类型表达式初始化uint32_t *(aka unsigned int *)的指针转换不兼容整数int

我没有将C头文件导入到目标c类 - 它只是找到它.如果我导入它,我会得到重复的方法错误.

C库头文件:

extern void     mt_seed32(uint32_t seed);

extern uint32_t     mt_lrand(void); 
Run Code Online (Sandbox Code Playgroud)

调用它的代码:[我试过用[self method()]调用它但是崩溃了

mt_seed32(3);

uint32_t *i = mt_lrand();
Run Code Online (Sandbox Code Playgroud)

任何人都可以告诉我如何摆脱这些警告?

puz*_*zle 8

发生最后一次编译错误是因为mt_lrand();返回一个int,而不是指向int的指针.因此,最后一行应该是

uint32_t i = mt_lrand();
Run Code Online (Sandbox Code Playgroud)

所有其他错误都是由于您没有#include库头.您能否发布包含库标题时发生的错误?