C语言 编译、链接、全局变量
来源:互联网 发布:访客网络怎么隐藏 编辑:程序博客网 时间:2024/05/22 03:30
举例:有main.c 、func1.c、func2.c(main函数在main.c中,其他两个源文件没有main函数)
以gcc编译来说:(不考虑其他编译和链接情况)编译:gcc -c main.c -o main.o gcc -c func1.c -o func1.ogcc -c func2.c -o func2.o链接:gcc main.o func1.o func2.o -o test // 生成test可执行文件 如果是在集成开发环境,例如vc、devc++、codebloker等。就在软件相关工程属性里勾选上或增加源文件就行。(工具屏蔽了编译链接技术细节)全局变量 方法1:
====================================================================
main.c
#include <stdio.h>extern char a;void func2();int main(){ printf ("%c\n",a); printf ("%d\n",a); func2(); printf ("%c\n",a); printf ("%d\n",a); return 0;}
=================================================================
func1.c
char a='A';
=================================================================
func2.c
#include <stdio.h>extern char a;void func2(){ a+=1;}
========================================================================
func1.c对全局变量a进行声明、定义,当其他源文件要使用a时,需要在函数前用extern char a 进行声明
在使用其他源文件中的函数func2()时,也要先声明再使用。
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
全局变量 方法2:
======================================================================
head.h
#ifndef HEAD_H#define HEAD_H
#include <stdio.h>extern char a;void func2();#endif
========================================================================
main.c
#include "head.h"int main(){ printf ("%c\n",a); printf ("%d\n",a); func2(); printf ("%c\n",a); printf ("%d\n",a); return 0;}
==================================================================
func1.c
char a='A';
======================================================================
func2.c
#include "head.h"void func2(){ a+=1;}
=====================================================================
全局变量a在源文件func1.c中声明、定义,函数func2()在func2.c声明、定义,a 和func2()都加入head.h头文件中,并在要使用到a和func2()的源文件前面添加head.h,就不用在源文件中声明了(注意如果A文件要用B文件的结构体。那么必须把结构体放到头文件里,两个源文件都include“头文件”)
0 0
- C语言 编译、链接、全局变量
- C语言编译、链接
- c语言编译链接
- C语言编译 链接
- c语言编译链接
- c语言编译、链接过程
- C语言 编译 链接 过程
- C语言-编译与链接
- C语言编译与链接
- 2. C语言编译,链接
- C语言编译、链接过程
- linux C 语言入门 编译链接运行
- C语言中的编译和链接
- 细谈C语言中的编译和链接
- C语言的编译链接过程
- C语言之编译链接全过程分析
- C语言的编译链接过程详解
- C语言的预处理、编译、汇编、链接
- Code::Blocks项目配置基础
- 浅谈手机app的推广
- POJ 2299 离散化线段树
- 113_tabhost
- Flex入门(三)——微架构之Cairngorm
- C语言 编译、链接、全局变量
- 解决安装Ubuntu之后找不到无线网卡驱动的问题
- java synchronized详解
- DOM4J乱码问题
- HDU 1677Nested Dolls
- Message Flood(STL)
- Activity生命周期状态
- SQL server2005服务器登录名、角色、数据库用户、角色、架构的关系
- 使用libjpeg 压缩yuv420到jpg (内存方式)