使用param(int&,int&)隐式声明所有函数

时间:2013-01-09 07:33:29

标签: c function compiler-errors

  

我在以下程序中收到错误

   #include<stdio.h>   
        void func(int &x,int &y){
        }
        int main(){
            int a=10,b=6;

            func(a,b);
            return 0;
        }
  

错误:

     

prog.c:2:错误:预期';',','或')'在'&amp;'标记prog.c之前:   function'main':prog.c:7:warning:隐式声明函数   “FUNC”

     

但是当我将函数参数类型从(&amp;)更改为(*)或任何时   其他类型然后它正常工作。

     

像这样:

  #include<stdio.h>
    void func(int *x,int *y){

    }
    int main(){
        int a=10,b=6;
        func(&a,&b);
        return 0;
    }
  

提前致谢。

     

NKS

3 个答案:

答案 0 :(得分:3)

您收到编译器错误,因为您没有编写有效的C代码。 (int &x,int &y)没有任何意义,看起来你正试图在C中使用C ++引用。

答案 1 :(得分:2)

C中没有通过引用传递,您在代码中使用C++语法,因为C您的代码应该与第二个区块中提到的一样。

答案 2 :(得分:2)

C中不允许通过引用传递..第二个块代码是正确的..

当您在实际参数中传递变量地址时,您需要在C语言的形式参数中的指针变量中收集它们。

func(&x, &y)    // actual parameters

void func(int *x, int *y)    //formal parameters