VC编译器是否可以警告它是否找不到原型的实现?
示例(注意不匹配的参数):
// calcSomething.h
int calcSomething(
int year,
int month,
int day,
int hour,
int minute,
int second
);
和
// calcSomething.cpp
int calcSomething(
int year,
int month,
int day
)
{
// ... implementation
}
更新:显然G ++有一个名为-Wmissing-declarations
的开关,我认为可能与我需要的开关一致,但显然对于VC ++。
答案 0 :(得分:2)
根据C ++语言规则,这两个函数完全不同。
编译器的反应方式与第一个函数的名称为calcSomething
且第二个函数的名称为calcSomeOtherThing
的方式相同。
特别是,您在标头中声明的函数将是未定义的,因为它没有实现。任何调用它的代码都不会编译和链接。无法生成调用从未定义过的函数的可执行文件。编译器在调用函数时不知道该怎么做。
答案 1 :(得分:2)
似乎答案是否定的。 MSVC编译器没有相当于G ++的-Wmissing-declarations的选项。