C语言中怎么调用外部函数? c语言中怎么调用自己定义的函数?

c\u8bed\u8a00\u4e2d\u600e\u4e48\u8c03\u7528\u51fd\u6570?\u8c22\u8c22

C\u8bed\u8a00\u4e2d\uff0c\u51fd\u6570\u8c03\u7528\u7684\u4e00\u822c\u5f62\u5f0f\u4e3a\uff1a
\u51fd\u6570\u540d(\u5b9e\u9645\u53c2\u6570\u8868)
\u5bf9\u65e0\u53c2\u51fd\u6570\u8c03\u7528\u65f6\u5219\u65e0\u5b9e\u9645\u53c2\u6570\u8868\u3002\u5b9e\u9645\u53c2\u6570\u8868\u4e2d\u7684\u53c2\u6570\u53ef\u4ee5\u662f\u5e38\u6570\u3001\u53d8\u91cf\u6216\u5176\u5b83\u6784\u9020\u7c7b\u578b\u6570\u636e\u53ca\u8868\u8fbe\u5f0f\u3002\u5404\u5b9e\u53c2\u4e4b\u95f4\u7528\u9017\u53f7\u5206\u9694\u3002
#includeint fun(int x, int y); // \u51fd\u6570\u58f0\u660e\uff0c\u5982\u679c\u51fd\u6570\u5199\u5728\u88ab\u8c03\u7528\u5904\u4e4b\u524d\uff0c\u53ef\u4ee5\u4e0d\u7528\u58f0\u660evoid main(){int a=1, b=2, c;c = fun(a, b); // \u51fd\u6570\u7684\u8c03\u7528\uff0c\u8c03\u7528\u81ea\u5b9a\u4e49\u51fd\u6570fun\uff0c\u5176\u4e2da\uff0cb\u4e3a\u5b9e\u9645\u53c2\u6570\uff0c\u4f20\u9012\u7ed9\u88ab\u8c03\u7528\u51fd\u6570\u7684\u8f93\u5165\u503c}// \u81ea\u5b9a\u4e49\u51fd\u6570funint fun(int x, int y) // \u51fd\u6570\u9996\u90e8{ // {}\u4e2d\u7684\u8bed\u8a00\u4e3a\u51fd\u6570\u4f53return x>y ? x : y; // \u8fd4\u56dex\u548cy\u4e2d\u8f83\u5927\u7684\u4e00\u4e2a\u6570}

\u6269\u5c55\u8d44\u6599C\u8bed\u8a00\u4e2d\u4e0d\u5141\u8bb8\u4f5c\u5d4c\u5957\u7684\u51fd\u6570\u5b9a\u4e49\u3002\u56e0\u6b64\u5404\u51fd\u6570\u4e4b\u95f4\u662f\u5e73\u884c\u7684\uff0c\u4e0d\u5b58\u5728\u4e0a\u4e00\u7ea7\u51fd\u6570\u548c\u4e0b\u4e00\u7ea7\u51fd\u6570\u7684\u95ee\u9898\u3002\u4f46\u662fC\u8bed\u8a00\u5141\u8bb8\u5728\u4e00\u4e2a\u51fd\u6570\u7684\u5b9a\u4e49\u4e2d\u51fa\u73b0\u5bf9\u53e6\u4e00\u4e2a\u51fd\u6570\u7684\u8c03\u7528\u3002
\u8fd9\u6837\u5c31\u51fa\u73b0\u4e86\u51fd\u6570\u7684\u5d4c\u5957\u8c03\u7528\u3002\u5373\u5728\u88ab\u8c03\u51fd\u6570\u4e2d\u53c8\u8c03\u7528\u5176\u5b83\u51fd\u6570\u3002\u8fd9\u4e0e\u5176\u5b83\u8bed\u8a00\u7684\u5b50\u7a0b\u5e8f\u5d4c\u5957\u7684\u60c5\u5f62\u662f\u7c7b\u4f3c\u7684\u3002\u5176\u5173\u7cfb\u53ef\u8868\u793a\u5982\u56fe\u3002
\u56fe\u8868\u793a\u4e86\u4e24\u5c42\u5d4c\u5957\u7684\u60c5\u5f62\u3002\u5176\u6267\u884c\u8fc7\u7a0b\u662f\uff1a\u6267\u884cmain\u51fd\u6570\u4e2d\u8c03\u7528a\u51fd\u6570\u7684\u8bed\u53e5\u65f6\uff0c\u5373\u8f6c\u53bb\u6267\u884ca\u51fd\u6570\uff0c\u5728a\u51fd\u6570\u4e2d\u8c03\u7528b \u51fd\u6570\u65f6\uff0c\u53c8\u8f6c\u53bb\u6267\u884cb\u51fd\u6570\uff0cb\u51fd\u6570\u6267\u884c\u5b8c\u6bd5\u8fd4\u56dea\u51fd\u6570\u7684\u65ad\u70b9\u7ee7\u7eed\u6267\u884c\uff0ca\u51fd\u6570\u6267\u884c\u5b8c\u6bd5\u8fd4\u56demain\u51fd\u6570\u7684\u65ad\u70b9\u7ee7\u7eed\u6267\u884c\u3002
\u53c2\u8003\u8d44\u6599\uff1a\u51fd\u6570\u8c03\u7528_\u767e\u5ea6\u767e\u79d1

\u5728\u4f7f\u7528\u4e00\u4e2a\u51fd\u6570\u4e4b\u524d\u5fc5\u987b\u5148\u5bf9\u4ed6\u8fdb\u884c\u58f0\u660e\uff1a
//void B();\u58f0\u660eB\u51fd\u6570\u7684\u5b58\u5728\u3002void A(){B();//\u975e\u6cd5\uff0c\u7a0b\u5e8f\u6267\u884c\u5230\u6b64\u65f6\u5e76\u4e0d\u77e5\u9053B\u51fd\u6570\u7684\u5b58\u5728\u3002}void B(){}
\u6216\u8005
#include
#include
#include
int fa(int n)
{
int a;
for(a=2;a<=sqrt(n*1.0),n%a!=0;a++);
if(a>sqrt(n*1.0))
return(1);
else
return(0);
}
void main( )
{
int n,q;
scanf("%d",&n);

\u6269\u5c55\u8d44\u6599
#include
#include
#include int fa(int n)
{
int a;
for(a=2;a<=sqrt(n*1.0),n%a!=0;a++);
if(a>sqrt(n*1.0))
return(1);
else
return(0);
}
void main( )
{
int n,q;
scanf("%d",&n);
if(fa(n)==1)
printf("n");
else
printf("y");
system("pause");
exit(0);
}
\u53c2\u8003\u8d44\u6599\uff1a\u767e\u5ea6\u767e\u79d1 - C\u8bed\u8a00\u51fd\u6570

1、外部函数extern时声明这个函数为外部函数,本文件不做定义,只调用,编译不会出错,但不能运行(没有函数实体)。如果想有运行结果就必须将函数实体包含进来,所以文件包含和extern是配合使用的。文件包含只需要包含.h就是实体的头文件,但有些软件貌似不能识别头文件和c的关系,所以就只能包含.c文件。
2、也就是说外部函数extern只是个声明,他告诉编译器我用到了一个外部函数,但如果该文件没有将函数实体包含进来,编译器是找不到的,依然是不能运行的,所以extern只是个声明,并没有做任何事,只是这样是没用的。include是包含一个文件,就是类似于该文件复制到此处(只是说类似,其实是个查找路径,让编译器去该路径查找函数)。

1中是可以调用2的,但是在链接的时候要把2生成的.o文件加进去

生成可执行文件有几步,你需要取了解一下编译和链接的过程,不需要太深入,但是会对你很有帮助。最好不要用现成的IDE去做练习,现实的环境中很多都是使用MAKEFILE去组织编译的,这也有助于更加全面的了解整个系统

还需要2.h 函数声明void enter(char str[ ]);

1.c 中#include “2.h”

函数分为库函数和自定义函数,在调用库函数时只要标明头文件(所谓头文件就是一个东西,里面包括了一些函数各声明之类的,当你要调用它中的函数时就就得先向程序说明你要调用这个文件里的函数,否则有有侵权行为哦)可以在主调函数中调用这个头文件里的所有函数了,例如头文件为#include<stdio.h>你就可以在主调函数中调用这个头文件里的函数:
main
{ printf("haha");/*这时main函数为主调函数,printf为被调函数*/
}
调用自定义函数时其实和调用库函数一样的,只不过这个函数是你自己定义的,再如:
main
{ void f();/*声明 f()函数*/
f(); /*调用f()函数*/
}
f()
{
printf("haha");/*f()函数调用库函数*/
}

你用的什么开发工具?2个文件是否都加入到项目中,一起编译连接的?错误信息是什么?

  • c璇█涓庝箞璋冪敤鍑芥暟
    绛旓細鍑芥暟璋冪敤鏂规硶灏辫繖鍑犵 1銆佺洿鎺ヨ皟鐢紝杩欑鍑芥暟涓鑸病鏈夎繑鍥炲硷紝鎴栬呬笉闇瑕佽繑鍥炲 濡 printf("浣犲ソ锛屽彲浠ョ洿鎺ヨ皟鐢╬rintf鍑芥暟鐨锛")2銆佽〃杈惧紡璋冪敤锛屾瘮濡傚浜庣敤鎴峰啓鐨勪竴涓眰鏈澶у煎嚱鏁癷nt max(int a,int b),涓鑸湁杩斿洖鍊 濡 c=max锛6,9锛 涔熷氨鏄鐢ㄤ竴涓噺鏉ユ帴鏀跺嚱鏁拌繑鍥炴潵鐨勫笺3銆佸弬鏁拌皟鐢...
  • C璇█鎬庝箞璋冪敤澶栭儴鍑芥暟
    绛旓細鍦ㄦ簮.c鏂囦欢涓坊鍔爄nclude鈥2.h鈥濆ご鏂囦欢鐨勫紩鐢锛屽氨鑳戒娇鐢2.c涓澹版槑鐨勫彉閲忎簡銆備絾鏄綘鐨刢鏂囦欢鐢ㄤ腑鏂囧懡鍚崀~~鐪熺殑娌¢棶棰樺悧锛熸垜娌¤繖涔堢敤杩囷紝寤鸿鏀规垚鑻辨枃鏂囦欢鍚嶃
  • c璇█涓,澶氭枃浠剁紪绋,濡備綍璋冪敤涓绘枃浠跺鏂囦欢涓殑鍑芥暟
    绛旓細濡傛灉璇ュ嚱鏁板湪涓绘枃浠澶栫殑C璇█澶存枃浠朵腑,閭d箞鐢 include "C璇█澶存枃浠跺悕" 寮曠敤,鐒跺悗灏卞彲浠ヤ娇鐢ㄤ簡(鍖呭惈鍦ㄥ悓涓椤圭洰涓嬬紪璇)濡傛灉娌℃湁,鍦ㄤ富鏂囦欢浣跨敤 extern 鏀鍑芥暟鐨瀹氫箟;鏉ュ0鏄庝竴涓嬪氨鍙互浣跨敤浜 渚嬪 extern int foo(int bar);int main(int argc,char **argv){ foo(1);...return 0;} ...
  • c璇█涓鍙互鍦ㄤ竴涓鍑芥暟涓皟鐢鍙︿竴涓嚱鏁板悧
    绛旓細鍙互鍟 浣嗘槸璋冪敤鐨勫嚱鏁闇瑕佸厛澹版槑鎴栬呭畾涔夛紝鎴栬呮槸鍏敤鍑芥暟
  • c璇█鍦ㄤ竴涓嚱鏁板唴閮ㄨ皟鐢ㄥ彟涓涓鍑芥暟鐨勮皟鐢鏂规硶绉颁负___?
    绛旓細鍦ㄤ竴涓嚱鏁板唴閮ㄨ皟鐢ㄥ彟涓涓鍑芥暟鐨勮皟鐢鏂瑰紡绉颁负宓屽璋冪敤锛屽祵濂楄皟鐢ㄥ氨鏄煇涓鍑芥暟璋冪敤鍙﹀涓涓嚱鏁帮紙鍗冲嚱鏁板祵濂楀厑璁稿湪涓涓鍑芥暟涓皟鐢鍙﹀涓涓嚱鏁帮級銆傚嚱鏁扮殑宓屽璋冪敤锛氬湪涓涓嚱鏁板唴閮ㄨ皟鐢ㄥ彟涓涓嚱鏁癲ef fn1():passdef fn2():fn1() # 鍑芥暟鐨勫祵濂楄皟鐢╠ef fn3():fn2() # 鍑芥暟鐨勫祵濂楄皟鐢╢n3()...
  • c璇█涓庝箞璋冪敤鍑芥暟?璋㈣阿
    绛旓細C璇█涓锛鍑芥暟璋冪敤鐨勪竴鑸舰寮忎负锛氬嚱鏁板悕(瀹為檯鍙傛暟琛)瀵规棤鍙傚嚱鏁拌皟鐢ㄦ椂鍒欐棤瀹為檯鍙傛暟琛ㄣ傚疄闄呭弬鏁拌〃涓殑鍙傛暟鍙互鏄父鏁般佸彉閲忔垨鍏跺畠鏋勯犵被鍨嬫暟鎹強琛ㄨ揪寮忋傚悇瀹炲弬涔嬮棿鐢ㄩ楀彿鍒嗛殧銆俰nclude<stdio.h>int fun(int x, int y); // 鍑芥暟澹版槑锛屽鏋滃嚱鏁板啓鍦ㄨ璋冪敤澶勪箣鍓嶏紝鍙互涓嶇敤澹版槑void main(){int a=1...
  • c璇█涓extern鎬庝箞鐢,涓句釜绠鍗曚緥瀛愯鏄庝笅,璋㈣阿銆
    绛旓細C涓畾涔変簡涓涓嚱鏁板拰鍙橀噺锛歷oid fun1(void);int a = 0;鑰屼綘瑕佸湪2.c涓皟鐢 fun1()锛屽苟涓旇鍙朼鐨勫硷紝閭d箞闇瑕佸啀2.c鐨澶撮儴濡備笅澶栭儴澹版槑锛歟xtern void fun1(void);extern int a = 0;杩欐牱鐨勮瘽鍦ㄧ紪璇戝櫒鍦ㄧ紪璇2.c鏃讹紝涓嶄細鎶ラ敊璇紝鑰屽湪閾炬帴鏃舵壘fun1銆乤锛屼互瀹炵幇瀵澶栭儴鍑芥暟銆佸彉閲忕殑璁块棶銆
  • c璇█濡備綍 璋冪敤澶栭儴绋嬪簭
    绛旓細2. 鏍规嵁浣鍑芥暟鐨鍙傛暟绫昏〃鏉ワ紝濉叆鍑芥暟璋冪敤鏃舵墍鐪熸鐢ㄥ埌鐨勫弬鏁版潵杩涜璋冪敤 渚嬪锛氳鍦ㄥ嚱鏁 F(){... } 涓皟鐢鏂板鐨勫皬绋嬪簭int FA(int a)鍜 char FC(char c),鎸夌収涓婇潰璁茬殑锛1.澹版槑鍜屽畾涔 int FA锛坕nt a){ /*鍑芥暟鍔熻兘鍏蜂綋鐨勫畾涔*/};char FC(char& c){ ... /*鍑芥暟鍔熻兘鍏蜂綋鐨勫畾涔*/};...
  • c璇█濡備綍璋冪敤鍙﹀涓涓鍑芥暟?
    绛旓細棣栧厛鍏堝畾涔変竴涓嚱鏁 鐒跺悗鍦ㄤ富鍑芥暟涓皟鐢 濡 瀹氫箟涓涓嚱鏁版瘮杈冨ぇ灏 int max (intx 锛 inty)鍦ㄤ富鍑芥暟涓皟鐢╟=max(a,b)鍏朵腑x,y鏄舰鍙傦紝a,b鏄疄鍙
  • C璇█涓鑳藉惁鍦ㄤ竴涓嚜瀹氫箟鍑芥暟涓皟鐢鍙︿竴涓嚜瀹氫箟鍑芥暟?
    绛旓細鍙互璋冪敤銆C璇█鏈鍩烘湰鐨勬ā鍧椾负鍑芥暟锛屼换鎰忓嚱鏁伴兘鍙互璋冪敤鍏跺畠浠绘剰涓涓嚱鏁帮紝鍖呮嫭鍑芥暟鏈韩銆1銆佽嚜瀹氫箟鍑芥暟璋冪敤鍏跺畠鑷畾涔鍑芥暟鐨渚嬪瓙锛歩nclude <stdio.h> void fun1(int a)//鑷畾涔夊嚱鏁癴un1銆倇 printf("%d\n",a);} void fun2(int m, int n)//鑷畾涔夊嚱鏁癴un2銆倇 fun1(m);fun1(n);//璋冪敤...
  • 扩展阅读:matlab如何调用外部函数 ... c语言定义外部函数 ... 延时c# ... c语言引用函数怎么用 ... c#如何调用类里的函数 ... extern调用外部函数 ... c语言gets 的用法 举例 ... c#的延时指令 ... c语言如何调用外部函数 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网