与 char* 冲突的类型

标签 c pointers function

我有一个小程序来测试将 char* 指针传入和传出函数。 当我用 cc 编译时,我收到警告和错误,说我有冲突类型,即使我所有的变量都是 char* 。请指教

#include <stdio.h>

main()
{
    char* p = NULL;

    foo1(p);
    foo2();
}

void foo1(char* p1)
{
}

char* foo2(void)
{
    char* p2 = NULL;

    return p2;
}

p.c:11: warning: conflicting types for ‘foo1’
p.c:7: warning: previous implicit declaration of ‘foo1’ was here
p.c:15: error: conflicting types for ‘foo2’
p.c:8: error: previous implicit declaration of ‘foo2’ was here

最佳答案

您需要在 main() 函数之前对您的函数进行原型(prototype)设计。

例子:

void foo1(char *p1);
char* foo2(void);

int main(.......

或者只是将这些函数的主体放在主函数之上。

关于与 char* 冲突的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/885801/

相关文章:

sql - 在一次查询中使用 DAY()、WEEK() 和 YEAR()

c++ - 错误编译器,无法将参数 2 从 MyStruct1 转换为 const void*,用于 memcpy

c - 用 C 测试 X509 证书到期日期

c++ - 为递归函数传递什么来转换二维数组 "90 degrees"

python - 如果我要使用一个变量,我必须总是在我的函数中将它引用为全局变量吗?

php - JavaScript 函数中唯一 ID 的变量

c - 加载时初始化、运行时初始化、编译时初始化

C素数崩溃于64901

C++如何删除两个相互引用的类指针

用于取消引用函数结果的 PHP 语法