鱼C论坛

 找回密码
 立即注册
查看: 2937|回复: 20

[已解决]为什么我的属性链接不了,请大神帮忙看一下

[复制链接]
发表于 2019-7-7 23:37:45 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
全局变量.png 全局变量1.png 全局变量2.png
最佳答案
2019-7-10 14:14:39
  1. #include<stdio.h>


  2. void a();
  3. void b();
  4. int count;
  5. int main(void)
  6. {
  7. a();
  8. b();
  9. printf("输出:%d\n",count);
  10. return 0;
  11. }
复制代码


这是主程序。

  1. #include<stdio.h>
  2. extern int count;
  3. void a()
  4. {
  5.         count++;
  6. }
复制代码


这是a.c文件

  1. #include<stdio.h>
  2. extern int count;
  3. void b()
  4. {
  5.         count++;
  6. }
复制代码


这是b.c文件。

                               
登录/注册后可看大图

输出结果为2
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-7-8 00:09:51 | 显示全部楼层
上代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-7-8 16:02:47 | 显示全部楼层
你头文件没包含啊,把 a 和 b 的头文件包进去
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-7-8 17:02:33 | 显示全部楼层
我叫MD 发表于 2019-7-8 16:02
你头文件没包含啊,把 a 和 b 的头文件包进去

能用代码吗不明白你说的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-7-8 17:08:21 | 显示全部楼层
我看你把 a 函数 和 b 函数写入了不同的文件中,所以你把 a 函数和 b 函数的头文件包含进去 ,  不行你把代码发出来, 给你看看
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-7-8 17:11:37 | 显示全部楼层
我叫MD 发表于 2019-7-8 17:08
我看你把 a 函数 和 b 函数写入了不同的文件中,所以你把 a 函数和 b 函数的头文件包含进去 ,  不行你把代 ...

主函数#include<stdio.h>
void a(void);
void b(void);

int count;

int main()
{
        a();
        b();
        printf("输出结果为%d\n",count);
}
a函数:#include<stdio.h>
extern int count;
void a()
{
        count++;
}
b函数:#include<stdio.h>
extern int count;
void b()
{
        count++;
}

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-7-8 17:19:05 | 显示全部楼层
我叫MD 发表于 2019-7-8 17:08
我看你把 a 函数 和 b 函数写入了不同的文件中,所以你把 a 函数和 b 函数的头文件包含进去 ,  不行你把代 ...

另外我也不知道external函数在windows中怎么使用
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-7-8 17:20:49 | 显示全部楼层
如果你这三个文件写在一个文件夹下面   

主函数#include<stdio.h>
extern void a(void);           //这里加extern试试
extern void b(void);          //这里加extern试试

int main()
{
        a();
        b();
        printf("输出结果为%d\n",count);
}
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-7-8 18:10:32 | 显示全部楼层
我叫MD 发表于 2019-7-8 17:20
如果你这三个文件写在一个文件夹下面   

主函数#include

extern 不是为了告诉编译器不要急于报错吗
加上extern以后也是报错
C:\Users\24625\OneDrive\文档\collect2.exe        [Error] ld returned 1 exit status
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-7-8 21:34:55 | 显示全部楼层
楼主把该项目的源代码放到纯英文目录下重新编译试试
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-7-8 22:35:13 | 显示全部楼层
你还是把3片代码段截图发上来把   发完整的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-7-9 13:20:54 | 显示全部楼层
return 0哪去了?????
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-7-10 12:04:13 | 显示全部楼层
我叫MD 发表于 2019-7-8 22:35
你还是把3片代码段截图发上来把   发完整的

主代码.png a代码.png b代码.png
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-7-10 12:04:48 | 显示全部楼层
TCY 发表于 2019-7-9 13:20
return 0哪去了?????

没有return 0有关系吗
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-7-10 13:19:25 | 显示全部楼层
放完整的源代码上来吧!放在代码框里。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-7-10 13:24:52 | 显示全部楼层
  1. #include<stdio.h>

  2. void a();
  3. void b();
  4. int count;
  5. int main(void)
  6. {
  7. a();
  8. b();
  9. printf("输出:%d\n",count);
  10. return 0;
  11. }

  12. void a()
  13. {
  14.         count++;
  15. }

  16. void b()
  17. {
  18.         count++;
  19. }
复制代码


这是放在同一个文件里的,运行结果正常
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-7-10 13:52:33 | 显示全部楼层
df3379 发表于 2019-7-10 13:24
这是放在同一个文件里的,运行结果正常

但是小甲鱼在视频中是分别在三个不同的.c文件中写的啊
你写的我是能明白的,只是不明白小甲鱼讲的内容在我的编译器中不能实现
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-7-10 14:14:39 | 显示全部楼层    本楼为最佳答案   
  1. #include<stdio.h>


  2. void a();
  3. void b();
  4. int count;
  5. int main(void)
  6. {
  7. a();
  8. b();
  9. printf("输出:%d\n",count);
  10. return 0;
  11. }
复制代码


这是主程序。

  1. #include<stdio.h>
  2. extern int count;
  3. void a()
  4. {
  5.         count++;
  6. }
复制代码


这是a.c文件

  1. #include<stdio.h>
  2. extern int count;
  3. void b()
  4. {
  5.         count++;
  6. }
复制代码


这是b.c文件。

                               
登录/注册后可看大图

输出结果为2
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-7-10 14:28:12 | 显示全部楼层
这肯定是我编译器的问题
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-7-10 14:28:58 | 显示全部楼层

你使用的是什么编译器
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-6 20:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表