【问题标题】:passing a char array to (void const *p) [duplicate]将 char 数组传递给 (void const *p) [重复]
【发布时间】:2013-08-06 17:36:56
【问题描述】:

我有一个源代码,其中有一个计算周校验和的函数。我需要传递一个字符数组,比如说'hello world'。我怎样才能做到这一点??我尝试了一些方法,例如:

char textArr[] = 'hello world'

但我收到“未定义的引用”错误。

unsigned int rs_calc_weak_sum(void const *p, int len) {
  unsigned char const    *buf = (unsigned char const *) p;
}

请帮助我。

【问题讨论】:

  • Asked literally 7 mins ago!?你们不知道搜索功能吧。
  • @H2CO3 在他的辩护中,他在相关问题存在之前就问了这个问题。这并没有改变这个问题已经被问了 300 次的事实,并且通过谷歌搜索得到了明确的回答。
  • @ScottyBauer related
  • @H2CO3 我同意,但是对于这些人,他们不在乎。他们总是会先来这里,即使我们告诉他们关于谷歌的事情。我在你身边。
  • 感谢大家的宝贵时间。但我得告诉你一件事。如果我能理解您在上面提供的那些参考资料,我就不会问这个问题了。没关系

标签: c arrays parameters char


【解决方案1】:

确保您的函数 rs_calc_weak_sum 在 main 之前原型化/定义。

【讨论】:

  • 是的,我在另一个文件中定义了该函数。和 Crl+click 去那个功能。 :D
  • @Satthy,您是否包含了正确的 .h 文件,以及在编译时是否包含了包含该函数的 .c 文件?
【解决方案2】:

像这样:

int main(){
  char textArr[] = "hello world";
  unsigned int checksum;
  checksum = rs_calc_weak_sum((const void*)textArr, sizeof(textArr));

}

【讨论】:

  • 感谢。我仍然收到那个错误:未定义引用`rs_calc_weak_sum(void const*, int)'。
  • @Satthy 你的错误不是在传递。确保在rs_calc_weak_sum 的代码下方或在您放置unsigned int rs_calc_weak_sum(void const *p, int len); 的.c 文件顶部有调用rs_calc_weak_sum(void const*, int) 的函数。
  • 不,我已经定义了那个函数。然后 Crl+click 转到该功能。
  • @Satthy 你显然没有正确定义它。
  • @Satthy 然后发生了其他事情(我们无法从给出的少量信息中猜出它是什么)。您的 rs_calc_weak_sum 相对于错误所在的位置定义在哪里?你在混合 C 和 C++ 代码吗?您使用哪种程序 Ctrl+click'ing 以跳转到该功能,并且可能还用于构建您的程序?也许您出于某种原因没有在定义 rs_calc_weak_sum 的文件中编译和链接。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-03-07
  • 1970-01-01
  • 1970-01-01
  • 2017-04-08
  • 2019-02-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多