我正在使用以下代码:
char dest[5]; char src[5] = "test";
printf("String: %s\n", do_something(dest, src));
char *do_something(char *dest, const char *src) { return dest; } 这里的实现do_something并不重要。当我尝试编译上面的代码时,出现以下两个异常:
错误:“ do_something”的类型冲突(在printf调用中) 错误:先前的“ do_something”隐式声明在此处(在原型行)
为什么? 问题来源于stack overflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
您试图在声明之前调用do_something。您需要在printf行之前添加一个函数原型:
char* do_something(char*, const char*); 或者您需要将函数定义移到printf行上方。在声明函数之前,不能使用它。