Не пытайтесь создать прототип strlen
самостоятельно. Просто включите <string.h>
и используйте уже имеющийся прототип (и функцию). Не пытайтесь написать собственную функцию с тем же именем (или, по крайней мере, официально, любым другим именем, начинающимся с str
).
Конфликтующий тип, который он видит сейчас, заключается в том, что стандарт требует strlen
для возврата size_t
, а не int
.
Также обратите внимание, что функция, которую вы назвали strlen
прямо сейчас, бесконечно рекурсивна - когда она (очевидно) пытается вызвать стандарт strlen
, она в конечном итоге вызовет сама себя, и, поскольку она делает это безоговорочно, он будет повторяться вечно (или пока система не убьет его из-за переполнения стека).