【问题标题】:problem with a function in c (linux)c(linux)中的函数问题
【发布时间】:2011-03-23 14:14:25
【问题描述】:

我正在编写一个 C 脚本来为我网站的某些部分生成一些站点地图。我试图通过将一个循环移动到一个我可以调用的函数中来清理它,而不是在我的脚本中放置几个​​大循环。

我无论如何都不会流利地使用 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”的先前隐式声明在这里

有人可以帮帮我吗?

【问题讨论】:

  • 你有没有在你的头文件中声明你的函数write_to_sitemap()?
  • 只是一个风格说明:我避免在条件句中进行赋值,除非它绝对无法帮助,或者它使代码丑陋的另一种方式。当我看到一个人时,我首先想到的是:“这是故意的,还是意外?”您在它们周围加上了括号,这很好,但仍然稍微不那么混乱。
  • 它是从另一个脚本复制/粘贴 sn-p,我对 C 语言了解不多,所以如果我复制/粘贴某些东西并且它可以工作,它会保持原样!

标签: c++ mysql c function


【解决方案1】:

您只需在首次使用之前(预先)声明write_to_sitemap

void write_to_sitemap(MYSQL_ROW row2, MYSQL_RES* resultset2);

或将其整个定义向上移动到您的文件中。

【讨论】:

  • 如何预先声明一个函数?我更喜欢把我的 int main 放在顶部,函数放在它下面。
猜你喜欢
  • 2014-03-02
  • 1970-01-01
  • 2020-10-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-26
相关资源
最近更新 更多