【问题标题】:function which takes no parameters Vs function which takes parameter不带参数的函数与带参数的函数
【发布时间】:2015-08-03 17:55:50
【问题描述】:

我是从 here 那里学到的

void f();
void f(int a) {
    printf("%d", a);
}

参数类型列表“wins”。 我做了以下...

int fun(void); //parameter type list
int fun(int a, double b)//parameter type list
{
    printf("%d, %f", a, b);
    return 0;
}

我原以为编译器会抛出错误(因为在 c 中不可能重载),但它没有

有人可以在这方面帮助我吗?

谢谢。

【问题讨论】:

  • 您使用的是什么编译器。它肯定会抛出一个错误.. error: conflicting types for ‘fun’
  • VS2013自带的
  • 是的,你是对的,它抛出了一个错误。我检查了 gcc。但是为什么 VS 不这样做呢?
  • @RachanaPal 你确定你使用的是 VS C 编译器,而不是 C++?
  • 你可能在 C++ 模式下编译它吗?

标签: c function


【解决方案1】:

由于您使用的是 Visual Studio,因此最可能的原因是您的代码位于 C++ 文件中。请注意,VS 根据文件扩展名区分 C 和 C++ 文件。将您的文件更改为 .c 文件而不是 .cpp 文件应该可以解决问题。

(注意Add New Item创建源文件时,只需添加一个新的C++文件,然后将创建的文件的名称更改为.c,就可以创建一个C文件,如下图所示.)

【讨论】:

    猜你喜欢
    • 2011-08-07
    • 2015-04-26
    • 1970-01-01
    • 2019-02-02
    • 2021-08-19
    • 2017-08-15
    • 2013-12-08
    • 2016-11-13
    • 1970-01-01
    相关资源
    最近更新 更多