通常找不到指定函数不是因为编译参数问题。而是你 g.cpp 中在include f.h的时候没有使用: extern "C" { #include"f.h" } 因为C语言和cpp的编译过程中的函数名称修饰规则是不一样的。当cpp引用C库的时候必须告诉编译器,哪些函数是C函数
创新互联公司是一家集网站建设,吉安企业网站建设,吉安品牌网站建设,网站定制,吉安网站建设报价,网络营销,网络优化,吉安网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
C语言语法不是这样的,感觉你之前用过其他编程语言
比如求x的平方根应该是sqrt(x)或者pow(x,0.5)
求x的平方是x*x或者 pow(x,2)
b除以2a,应该是b/(2*a),而不是b/2*a
再着,写scanf("%d%d%d")的话,你输入时不能输入其他字符,数字之间空格就行了
另外,一个函数只能返回一个值,没有return(x1,x2)这样的用法,return (x1,x2)只会返回x2
总之,你这份代码可以说是错误大合集,给你一个参考吧
你把大括号的位置放错了,sushu函数被定义在了main函数里面,但是按照C语言的规定,函数不允许嵌套定义,所以你的sushu相当于没有定义(不知为何你的编译器没有报错说不允许在函数内定义函数)。解决方法是把你最后面多出来的大括号移到main函数最后面。
把被调用函数写到调用函数上面去,这样就可以免去声明。
这里你也可以把被调用函数剪切到调用函数上面去做一下测试。
首先,指针默认只有一个地址的长度的空间,存不了那么多的字符。
其次,传值和传地址一塌糊涂,完全就是乱写么。
scanf的第二个参数是地址,如果本身不是指针则需要取址符。
我给你重写了算了
#includestdio.h
int Retrieve(int array[],int length,int x);/*形参x直接传值就可以了*/
int main()
{
int *a,x;
int length,i;
scanf("%d",length);
a = (int)malloc(sizeof(int)*length); /*申请一个内存空间用来存放数据,或者直接用一个大数组也可以*/
编译的时候需要指定你调用的那个函数的库文件。
用VC时在做工程的时候指定,
用UNIX要写MAKEFILE,在其中指定。