2011-03-23 34 views
1

我正在编写一个C脚本来为我的网站的某些部分生成一些站点地图。我试图通过将一个循环移入一个我可以调用的函数来清理它,而不是在脚本中的eachother之上有几个大循环。在c(linux)中的函数问题

我用任何方式都不能流利地使用C语言,我可以用它来解决它,但函数很混乱。

这里是我想要做的事:

mysql_query(conn, qryListings); 
    if((resultset2 = mysql_use_result(conn))) { 
     write_to_sitemap(row2, resultset2); 
    } 

    void write_to_sitemap(MYSQL_ROW row2, MYSQL_RES* resultset2){ 
     while ((row2 = mysql_fetch_row(resultset2)) != NULL) { 
      printf(" %s \n",row2[2]); 
     } 
    } 

这是给我下面的错误: 警告:冲突的类型âwrite_to_sitemapâ 警告:以前的隐性âwrite_to_sitemapâ的声明在这里

有人可以帮我吗?

+0

你是否在头文件中声明了函数write_to_sitemap()? – 2011-03-23 14:18:01

+0

只是一个文体上的注意事项:我避免在条件中的任务,除非它绝对不能被帮助,或者它使得代码以另一种方式做。当我看到一件事时,我首先想到的是:“这是故意的还是事故?”你已经在他们周围放了括号,这很好,但它仍然只是稍微减少了混淆。 – 2011-03-23 14:23:46

+0

这是一个来自另一个脚本的复制/粘贴片段,我真的不知道C中的多少,所以如果我复制/粘贴某些内容并且它可以正常工作,它就会保持原样! – Joe 2011-03-23 14:42:04

回答

2

你只需要在第一次使用前(预)宣布write_to_sitemap

void write_to_sitemap(MYSQL_ROW row2, MYSQL_RES* resultset2); 

或在您的文件移到完整的定义了。

+0

我该如何预先声明一个函数?我更喜欢我的int main在顶部,并且它的功能。 – Joe 2011-03-23 14:39:19

+0

严,duhhh,我有一个脑屁第二次:) – Joe 2011-03-23 14:39:54