gpt4 book ai didi

c - "Undefined reference to"同一文件中的 C 函数错误

转载 作者:行者123 更新时间:2023-11-30 18:29:38 26 4
gpt4 key购买 nike

刚刚学习如何在 C 中使用指针,并且在声明使用指针作为参数的函数时遇到错误

#include <stdio.h>

int a[10];

int strlen(const char *str);

int main(){
printf("%d", strlen("This works"));
return 0;
}
int strlen(char *s){
int n;
for (n = 0; *s != '\0'; s++)
n++;
return n;
}

编译时收到以下错误

Undefined reference to 'strlen(char const*)'

最佳答案

在声明中,您有

int strlen(const char *str); 

但是,根据定义,它变成了

int strlen(char *s){

注意到区别了吗?为了使您的代码正常工作,您必须使定义和声明相同,否则您将收到错误,因为链接器找不到 int strlen(const char *str);

的定义

要修复此错误,请将声明更改为

int myStrlen(const char *str); 

以及定义

int myStrlen(const char *s){

然后再试一次。

由于 strlen() 是 C 库函数,因此不应使用此名称。另外,我说“再试一次”,而不是“它工作”,因为我们没有使用相同的编译器,所以我不确定这是否会解决您的实现问题。如果您使用 C++ 编译器来编译此代码,则最好使用 C 编译器,因为 C 和 C++ 是不同的语言。

关于c - "Undefined reference to"同一文件中的 C 函数错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36121654/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com