鍍金池/ 問答/C/ 在不添加<string.h>的情況下,為什么自己寫的strlen()

在不添加<string.h>的情況下,為什么自己寫的strlen()函數會有警告?

相關代碼

// 請把代碼文本粘貼到下方(請勿用圖片代替代碼)
#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什么的就沒警告了,請問這是為什么?

回答
編輯回答
愛礙唉

clipboard.png

GCC表示沒有這個問題

猜測是你IDE的問題,不知道你什么IDE,估計是啟用了默認庫文件的選項

題目的代碼格式難以入目

2017年10月29日 01:03