Win32 C 语言程序编译多个文件和在多个文件中声明外部变量
先看一下程序的运行结果;Win32程序,没窗口;只有WinMain入口;
工程如下;main.c使用了a.c、b.c、d.c中的函数;
main.c;
#include <windows.h>
#include "a.h"
#include "b.h"int A; /* 定义外部变量 */
int power(int); /* 函数声明 */ int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
{/* TODO: Place code here.*/char szBuffer[100];wsprintf(szBuffer, "较大的数字是:%d",myMax(30,87));MessageBox(NULL,szBuffer,TEXT("调用a.c"),0);wsprintf(szBuffer, "两数之和是:%d",myAdd(33,44));MessageBox(NULL,szBuffer,TEXT("调用b.c"),0);A=7;wsprintf(szBuffer, "乘法结果是:%d",power(3));MessageBox(NULL,szBuffer,TEXT("调用d.c"),0);return 0;
}
a.c;
int myMax(int a,int b){if(a>b)return a;return b;
}
b.c;
int myAdd(int a, int b){return a+b;
}
a.h;
int myMax(int ,int );
b.h;
int myAdd(int , int );
main.c作如下包含,
#include "a.h"
#include "b.h"
即可调用a.c和b.c中的函数;
使用extern关键字来声明变量为外部变量。具体说就是在其中一个c文件中定义一个全局变量key,然后在另一个要使用key这个变量的c文件中使用extern关键字声明一次,说明这个变量为外部变量,是在其他的c文件中定义的全局变量。
例如在01.c文件中定义变量abc,在02.c文件中声明abc变量为外部变量,这样这两个文件中就能共享这个变量abc了。
d.c;
extern A;/*声明A为一个已定义的外部变量*/
int power(int n){int i,y=1;for(i=1;i<=n;i++){y*=A;}return y;
}
变量A在main.c中赋值,然后调用d.c中的power()函数;
Win32 C 语言程序编译多个文件和在多个文件中声明外部变量相关推荐
- linux声明语言变量,C语言中用extern声明外部变量
2. 在多文件的程序中声明外部变量 如果一个程序包含两个文件,在两个文件中都要用到同一个外部变量num,不能分别在两个文件中各自定义一个外部变量num.正确的做法是:在任一个文件中定义外部变量num, ...
- 将易语言程序编译为exe程序
上一篇文章中讲到如何利用以语言实现简单的人机交互,这篇文章中将会分享如何将易语言程序编译为exe程序. 第一步 编写一个易语言程序 步骤详见上一篇博客,在这里就不再赘述了.易语言实现最简单的人机交互_ ...
- c语言中声明外部函数需要添加的关键字,C语言中声明和定义的区别——分析extern关键词。...
一直很迷惑C语言中的声明和定义的有些实践中的用法,说迷惑实践是因为声明和定义的概念上的区别是很明确的. 定义和声明的区别(主要针对变量): 定义是要为变量分配存储空间,还可以在定义的时候为变量指定初始 ...
- 能否用痰盂盛饭——谈谈在头文件中定义外部变量
能否用痰盂盛饭--谈谈在头文件中定义外部变量 - garbageMan - 博客园 能否用痰盂盛饭--谈谈在头文件中定义外部变量 "能否用痰盂盛饭"并非是一个技术问题,而是一个哲学 ...
- Linux上C语言程序编译过程详解
点击蓝字 关注我们 因公众号更改推送规则,请点"在看"并加"星标"第一时间获取精彩技术分享 来源于网络,侵删 本文将介绍如何将高层的C/C++语言编写的程序转换 ...
- C语言程序编译过程 2
C语言的编译链接过程要把我们编写的一个c程序(源代码)转换成可以在硬件上运行的程序(可执行代码),需要进行编译和链接.编译就是把文本形式源代码翻译为机器语言形式的目标文件的过程.链接是把目标文件.操作 ...
- c语言程序编译与烧录,一种解释自定义脚本并烧录的方法与流程
本发明属于芯片烧录技术领域,特别涉及一种通过脚本进行芯片烧录的方法. 背景技术: 目前的烧录芯片主要是通过烧录器将烧录文件进行烧录,芯片中才会存储相应的代码.烧录文件有许多格式,如BIN文件,HEX文 ...
- c语言程序编译输出乱码,解决VC++编译程序出现中文乱码的问题
大家在使用VC++进行编译的时候,是否都会遇见一种情况,那就是编译以后出现了中文代码.小编觉得,这一种情况还是比较普遍的.那么为了可以解决大家的难题,今天小编就教大家解决VC++编译程序出现中文乱码的 ...
- C语言程序编译和执行过程
1.预处理 1).宏定义展开2).头文件展开3).删除注释4).条件编译格式:gcc -E a.c -o a.i 2.编译1).检查语法2).转化成汇编语言格式:gcc -S a.i -o a.s 3 ...
最新文章
- 《按键消抖与LED控制》实验的个人思考与总结
- myeclipse 修改模板
- 知识点讲解四:栈溢出(stack overflow)问题解决方案
- 并发编程的艺术:第二章
- android aar编程,AndroidStudio脚本命令指定AAR生成目录与版本号
- 【C++】Visual Studio教程(九) -卸载 Visual Studio
- 用户认证-什么是会话
- 纽约佩斯大学孔子学院:中国故事
- 分享几个Python小技巧函数里的4个小花招
- Bzoj4556 [Tjoi2016Heoi2016]字符串
- sqlserver卸载不完全导致安装失败
- 流程图中的实线_流程图符号_流程图中的带箭头的线段代表什么?
- Aspose.Words使用模板导出数据库中图片内容
- ib课程北京国际学校哪里有?
- 守望先锋地图工坊分享合集
- MES 系统价格多少钱?企业如何甄选MES 厂商?
- Redis实现分布式锁(setnx、getset、incr)以及如何处理超时情况(二)
- Feng Office 3.7.0.5 - 文件上传
- 三元运算符的基本用法
- 软件项目管理和测试题,软件项目管理第一章测试题
热门文章
- 博士生传给硕士生的经验
- explain 之 table || explain 之 type
- 优化group by 语句
- Understand Event-Driven Software Architecture
- web相关概念回顾|| 部署项目的方式
- SQL Server数据库字符集、版本类型、版本号、所在服务器名、语言SQL语句查询语法演示
- [YTU]_2570 指针练习——变量交换
- dhcp只能分配与路由器相同网段么_dhcp工作原理
- kettle预览点两下才出数_孩子过生日选“阴历”还是“阳历”?有3点讲究,需斟酌再决定...
- 正交多项式族(勒让德多项式跟切比雪夫多项式)理论