2 steve s96 Steve_S96 于 2016.04.05 21:01 提问

C语言函数调用问题,求助

两个C语言文件,从一个里面调用另一个为什么不能?哪里错了图片

3个回答

u013610563
u013610563   2016.04.10 10:53

图片说明
图中main是你给的的主函数,hanshu.c文件是你写的函数的文件,上面是我编译链接的过程,最后输出结果。我猜你是想知道局部变量和外部变量的关系吧

不过我建议你把自己写的函数写到另外一个头文件中去,不要像你这样写,如果还有问题的话再问我,给好评哦

qq423399099
qq423399099   Ds   Rxr 2016.04.05 21:06

楼主是两个文件一起编译的吗?

qq423399099
qq423399099 回复Steve_S96: 我晕,要gcc extern2.c fextern3.c才行;分开编译的话要先编译出.o文件来,然后再链接
2 年多之前 回复
Steve_S96
Steve_S96 不是,我先编译了子函数,然后编译了主函数
2 年多之前 回复
CSDNXIAOS
CSDNXIAOS   2016.04.05 21:12

下面是一段来自《C专家编程》里的内容,对于大家初步理解C语言中的函数调用、函数参数以及函数中的变量有着很大帮助。接下来的这段代码片段取自按照当地日期格式打印日期的程序。这里存在一个BUG,看看你是否能够找到:  
/* 将源文件的timestamp转换为表示当地格式日期的字符串 */
char *localized_time(char *filename)
{
struct tm *tm_p......
答案就在这里:关于C语言函数调用的问题
----------------------Hi,地球人,我是问答机器人小S,上面的内容就是我狂拽酷炫叼炸天的答案,除了赞同,你还有别的选择吗?

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
C语言函数调用问题汇总
1. 形参问题 形参——形式化的参数,这种解释很抽象。 在任何编程语言中,任何变量都是某个特定的存储空间的一段而已,这一段具体有多大,由变量的类型决定,如 int 型,则为4 Byte。 在进行函数/方法的调用时,函数的实参是存在于存储空间某个具体位置的一段指定空间的,而任何函数或方法都会被程序控制器开辟一个栈空间(stack),这个空间也是一段存储位置,有时候为了效率起见,它存在于
C语言: 函数调用的开销
初学C语言的时候,我们有时会听说函数调用会有一定的开销,在进行了进一步学习之后,我们来看看原来听说的开销指的什么。 下面是两个非常简单的样例,就不作解释了: 函数调用版本C程序:#include <stdio.h>int sum(int a, int b) { return a + b; }int main() { int a = 1; int b = 1; in
C语言函数调用的底层机制
C语言函数调用的底层机制C语言函数调用的底层机制C语言函数调用的底层机制C语言函数调用的底层机制C语言函数调用的底层机制C语言函数调用的底层机制
C语言库函数与程序里编写的函数的执行效率问题
最近做算法作业的时候遇到多项式求值的不同算法的运行时间的问题,我同C语言尝试了一下,在求X的i次方时想到一个问题,假如我调用pow(x,i)函数,那么和我自己重新写一个幂函数求值函数的运行时间是否有差别,如果有,那么这个算法最终的运行时间就不准确,因为借助了库函数执行效率高的原因。    所以,今天就做了个小实验,来计算调用库函数和自己编写的完全一样的函数的运行时间。     我把库函数完全复
C语言函数调用过程
文 [读书笔记]C语言函数调用过程 c   legendmohe 2015年07月12日发布 推荐 0 推荐 收藏 0 收藏,392 浏览 *** 本文是《老码识途》第一章的读书笔记 *** 函数调用 例子代码如下所示: int Add(int x, int y) { int sum; su
c语言三种函数调用方式
其实可以认为函数在执行时会为形参创建变量 值传递,创建变量x和y,x的值等于a的值,y的值等于b的值 void Exchg1(int x, int y)  { int tmp; tmp=x; x=y; y=tmp; printf(“x=%d,y=%d/n”,x,y) } void main() { int a=4,b=6; Exchg1 (a,b) ; printf(“
深入理解C语言----函数调用过程浅析
读了韩宏老师的《老码识途》第一章,忍不住自己动手试一下,利用反汇编来查看函数调用过程 #include typedef struct { int i1; int i2; int i3 }myrd; myrd myfunc(int a, int b, int c) { myrd r1; r1.i1 = a; r1.i2 = b; r1.i3 = c; return r1;
c语言函数调用详细过程
原帖:http://blog.chinaunix.net/uid-7390305-id-2057207.html 这是从别处看到的一篇文章,感觉写的非常深入细致,是作者学习汇编语言的笔记,但是我觉得这篇文章对理解C函数调用非常有帮助,于是参考作者的步骤在自己的linux机器上实现了一下, 并对文章做了一些细小的更改,在此对原作者致谢,如果作者觉得这样有些冒犯的话,请通知我我会立即撤掉。
C语言函数调用机制
本文使用一个简单的C语言的例子探索一下函数的调用机制,函数调用关系如下:int g(int x) { return x + 10; }int f(int x) { return g(x); }int main(void) { return f(10) + 5; }通过编译生成汇编代码分析调用过程: gcc –S –o main.s main.c -m32 生成汇编代码如下
76 从C语言函数调用发现程序运行的秘密
从C语言函数调用发现程序运行的秘密