在Fortran语言与C语言中过程调用时的参数传递
CALL Vpopt(Icode,IARG,RARG,IER)
如在C语言中,调用形式为
Vpopt(Icode,IARG,RARG,IER)
的话,就会出错。
这是因为,子程序Vpopt的参数IER要求返回一个整数值,即IER传递给程序Vpopt时,不是具体的值,而是一个变量,程序Vpopt运行完成后,才给IER赋一个值。这时,在调用Vpopt的程序中,就可使用这个变量了。由于Fortran是按访问信息方式传递参数的,IER就代表了实在参数的地址,而在C语言中,是按值传送方式传递参数的,IER就代表了一个实在参数的具体值,这就不符合Vpopt程序的要求,故在C语言中调用Vpopt时,应该以如下形式:
Vpopt(Icode,IARG,RARG,&IER)