① c语言 外部函数声明与否问题
当不提供函数原型,而调用处尝不知道返回值类型,此时编译器黙认返回值为整型,而实际返回类型并不是整型,结果没有做正确的数据类型转换,取到的就是错误的数据
你可以在return sum;前打印这个结果,看看计算时是否正确,
同时在循环体中打印出来各个元素值,看看传参数是否正确,如果这两处都还正确则说明只是返回值未正确类型转换。
② 什么叫外部函数 (C语言问题)
当一个源程序由多个源文件组成时,C语言根据函数能否被其它源文件中的函数调用,将函数分为内部函数和外部函数。
如果在一个源文件中定义的函数,只能被本文件中的函数调用,而不能被同一程序其它文件中的函数调用,这种函数称为内部函数。
定义一个内部函数,只需在函数类型前再加一个“static”关键字即可,如下所示:
static 函数类型 函数名(函数参数表){……}
在定义函数时,如果没有加关键字“static”,或冠以关键字“extern”,表示此函数是外部函数:
[extern] 函数类型 函数名(函数参数表){……}
外部函数原型声明要有extern
简单说,外部函数是用户自定义函数,该函数写在另一个文件里.
③ C语言关于外部函数的调用很多基本问题
首先2个文件建在同一工程下,其次把要调用的函数声明在h文件中,要包含所建立的h文件,不然的话在#include里面加上完整的路径
④ 关于C语言的一道题目 内部函数 外部函数
因为
C语言编译时要检查语法,所以A不对;
C语言没有过程,只有函数,所以B不对;
C语言函数内不能定义函数,既不能嵌套定义,所以C不对。
排除法也知道是D了。当然由“函数内不能定义函数”也可以推出所有函数都是外部函数。
—— 其实这种说法对外部函数的理解也还值得商榷。但其它的是完全不对,也就选它吧。
⑤ 外部函数的问题(C语言)
可以。
printf('%d*%d=%d\n",A,m,d);} --> printf("%d*%d=%d\n",A,m,d);}
exter int A; --> extern int A;
====================================
程序 a1.c
#include<stdio.h>
int A;
void main()
{
int power(int);
int b=3,c,d,m;
printf("enter the number a and its power m:\n");
scanf("%d,%d",&A,&m);
c=A*b;
printf("%d*%d=%d",A,b,c);
d=power(m);
printf("%d*%d=%d\n",A,m,d);
}
程序 a2.c
extern int A;
int power(int n){
int i,y=1;
for(i=1;i<=n;i++)
y*=A;
return(y);}
==================
编译
(1) 生成 a1.obj, a2.obj
cl a1.c -c
cl a2.c -c
(2) 链接 生成 a1.exe
cl a1.obj a2.obj
运行
a1.exe
⑥ 谁能解答一下,C语言编程调用外部函数的问题
你可以再外部函数中加入个输出语句,检测下有没有被调用。
⑦ 为什么C语言中所有的函数都是外函数
来自网络
C语言外部函数是一种可在自身所处的源文件及其他源文件中都能被调用的函数。外部函数的作用域是整个源程序。
函数调用
编辑
1、在定义函数时,若在函数首部的最左端加关键字extern,则表示此函数是外部调用,可被其他文件调用,函数首部可以为
Extern int fun(int a,int b);
C语言规定,定义函数时省略了extern则隐含为外部函数,可被其他文件调用
2、在需要调用函数的文件中,用extern对函数声明,表示该函数是在其他文件中定义的外部函数
所以外函数只是一种引用方式,大项目多人分开写,可能会有多个文件,最后要整合在一起用。那被引用的文件中函数相对与引用者,就是外部函数。
⑧ 关于C语言外部函数
两个可以放在同一目录下,也可以放到不同的目录下,前提是你在主函数文件中应当包含相应的头文件或C文件(路径写对应,写完整就好)。
外部函数文件根据所写函数需要将对应头文件包含进来,stdio.h作为一个标准输入输出文件,只要你该外部文件内涉及到输入输出等操作,就是必须要包含进来的。
希望对你有所帮助!