在 c 和 cpp 中声明功能的必要性



来自bruce eckel --" 虽然你应该总是通过包含头文件来声明函数,但函数声明在C中并不是必需的。在 c 中可以调用 cpp 中,但不能调用您尚未声明的函数。这是一种危险的做法,因为 c 编译器可能会假设 u 使用整数参数调用的函数具有包含整数的参数列表,即使它实际上可能包含 float 。这会产生错误"我的问题是,即使一个函数没有被声明,在其定义过程中我们不得不提到参数的数据类型[VOID FUNC(INT A)],那么编译器如何假设浮点数是整数呢?

如果在应该做出假设之前未声明或定义函数,则编译器对提供的参数进行假设。 尝试以下代码并检查结果(使用 gcc 检查):

#include <stdio.h>
int main (int argc, char * argv[])
{
        x(1);
        x(1.);
        x(1);
        return 0;
}
void x(double y)
{
    printf ("%fn", y);
}

最新更新