如何调用一个.c文件里的方法?

RT,最近在折腾着把一个UCGUI+SDL的程序编译到iOS设备上,遇到一个调用c文件方法出错的问题(好吧,我知道我表达渣,还是看图吧LSDSIM.cLCDSDL.c
GUI_X_SDL.c

如上图,LSDSIM.c里面这个方法

    drawPoint(getSurface(), x, y,Index);

调用了LCDSDL.c的

__inline int drawPoint(SDL_Surface * dst, int x, int y, int  color)
{
    return SDL_DrawPointB(dst, x, y, TransColors(color));
}

然后还调用了GUIXSDL.c的

SDL_Surface* getSurface()
{
    return g_screen_surface;
}

然后报错Implicit declaration of function 'drawPoint' is invalid in C99 搜过网上说的一些说法是改Build Setting 的 C Language Dialect,然并卵,我觉得应该是找不到这些方法才会导致这样,求教要怎么调用.c里面的方法,或者有别的什么解决方法
ps:我C语言学的很烂,正准备恶补一番,大家有什么推荐看的书?

阅读 3.8k
2 个回答

书可以直接看K&R的《The C programming language》,这是因为没有声明,你需要加入那个.c对应的.h文件。如果没有对应的.h文件或者对应的.h文件里没有对应函数的声明的话,你也可以通过在调用前声明extern函数的方式来解决。不过最好还是声明在对应的.h里。

新手上路,请多包涵

试试把inline移除掉

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题