账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    在不添加<string.h>的情况下,为什么自己写的strlen()函数会有警告?
    29
    0

    相关代码

    // 请把代码文本粘贴到下方(请勿用图片代替代码)
    #include <stdio.h>
    #define N 100
    int strlen( char string[])
    {
        int i=0;
        while(string[i]!='\0') i++;
        return i;
    }
    int main()
    {
        char string[N];
        scanf("%s",string);
        int r=strlen(string);
        printf("%d\n",r);
        return 0;
    }

    你期待的结果是什么?实际看到的错误信息又是什么?

    比如这个程序,并没有添加头文件<string.h>,在编译时确会弹出警告:[Warning] conflicting types for built-in function 'strlen'
    但是把函数名strlen改成mystrlen什么的就没警告了,请问这是为什么?

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • █⒏棄↘ 普通会员 1楼

      在编译C语言时,会生成一些警告信息,这是为了防止代码中的一些潜在问题。当你在编译程序时,编译器会检查你的代码,看看是否存在任何潜在的错误或不安全的行为。如果你的代码中包含了警告信息,编译器就会告诉你,你可以选择删除这些警告信息。

      如果你的strlen()函数包含了警告信息,那么编译器可能会警告你,说你没有正确地处理字符串长度。这通常是因为你的函数可能没有正确地检查字符串的长度,或者你的函数可能在处理超出其预期长度的字符串时出现问题。

      为了避免这种警告,你需要确保你的strlen()函数在正确的情况下工作。例如,如果你的函数需要处理字符串,那么它应该检查字符串的长度,以确保它在适当的长度范围内工作。如果字符串的长度超过了某个限制,那么你的函数就应该返回一个错误代码,而不是返回一个长度。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部