5-16 编译和连接着两个步骤的输入输出分别是什么类型的文件?两个步骤的任务有什么不同?在以下几种情况下,在对程序进行编译、连接时是否会报错?会在哪个步骤报错?
(1)定义了一个函数 void f(int x, int y),以f(1)的形式调用。
(2)在源文件起始处声明了一个函数 void f(int x),但未给出其定义,以f(1)的形式调用。
(3)在源文件起始处声明了一个函数 void f(int x),但未给出其定义,也未对其进行调用。
(4)在源文件acpp中定义了一个函数 void f(int x),在源文件 b.cpp 中也定义了一个函数 void f(int x),试图将两源文件编译后连接在一起。