c - 两个程序之间的区别 - 在 file.c 中包含或不包含 file.h
问题描述
我编写了两个简单而简短的程序,每个程序由三个文件(main.c、libreria_mia.c、libreria_mia.h)组成。如果我不在文件 libreria_mia.c 中写入#include "libreria_mia.h",第一个程序也可以工作。相反,第二个程序仅适用于我在 libreria_mia.c 中编写的上述包含
怎么来的?
第一个程序:
// main.c
#include <stdio.h>
#include "libreria_mia.h"
int main()
{
int x = 5;
int y = quadrato(x);
printf("%d\n", y);
return 0;
}
------------------------------------------
// libreria_mia.h
int quadrato(int a);
------------------------------------------
// libreria_mia.c
int quadrato(int a)
{
a = a * a;
return a;
}
第二个程序:
// main.c
#include <stdio.h>
#include "libreria_mia.h"
int x = 5;
int main()
{
quadrato();
printf("%d\n", x);
return 0;
}
----------------------------------------------------------------
// libreria_mia.h
extern int x;
void quadrato();
----------------------------------------------------------------
// libreria_mia.c
#include "libreria_mia.h"
void quadrato()
{
x = x * x;
}
谢谢你的意愿。
解决方案
推荐阅读
- regex - Bash 替换第一个冒号后的子字符串
- python - bs4 在给定标签的所有属性中搜索一个单词
- c# - 如何在 Windows 服务器上通过 C# Socket 发送或转发原始 TCP 数据包?
- scala - 在 spark 3.0 中设置 hadoop 配置 - RuntimeException
- java - 壁画计算器。(两种解决方案 - 给出两种不同的结果)
- python - 重新采样熊猫系列(但不是时间系列)
- reactjs - 反应,标记 maxTags 不更新
- c++ - 抽象类型可以用作纯虚函数的返回类型吗?
- kubernetes - 在线精品扩展
- angular - 花费大量时间来更新我的 firebase 项目的字段