.c和.h与.cpp解析
来源:互联网 发布:阿里云资源 编辑:程序博客网 时间:2024/05/16 23:46
原文地址:https://www.cnblogs.com/laojie4321/archive/2012/03/30/2425015.html
简单的说其实要理解C文件与头文件(即.h)有什么不同之处,首先需要弄明白编译器的工作过程,一般说来编译器会做以下几个过程:
1.预处理阶段
2.词法与语法分析阶段
3.编译阶段,首先编译成纯汇编语句,再将之汇编成跟CPU相关的二进制码,生成各个目标文件 (.obj文件)
4.连接阶段,将各个目标文件中的各段代码进行绝对地址定位,生成跟特定平台相关的可执行文件,当然,最后还可以用objcopy生成纯二进制码,也就是去掉了文件格式信息。(生成.exe文件)
编译器在编译时是以C文件为单位进行的,也就是说如果你的项目中一个C文件都没有,那么你的项目将无法编译,连接器是以目标文件为单位,它将一个或多个目标文件进行函数与变量的重定位,生成最终的可执行文件,在PC上的程序开发,一般都有一个main函数,这是各个编译器的约定,当然,你如果自己写连接器脚本的话,可以不用main函数作为程序入口!!!!
(main .c文件 目标文件 可执行文件)
有了这些基础知识,再言归正传,为了生成一个最终的可执行文件,就需要一些目标文件,也就是需要C文件,而这些C文件中又需要一个main函数作为可执行程序的入口,那么我们就从一个C文件入手,假定这个C文件内容如下:
#include
阅读全文
0 0
- .c和.h与.cpp解析
- Appdelegate.h和.cpp的简单解析
- 【学习C++】两个源文件CPP(cpp与cpp) 或 头文件h与源文件cpp
- 声明与实现.h和.cpp
- .h和.cpp的用法与区别
- .c .cpp .h
- .h和.c文件解析
- include .h 与 .cpp
- C/C++--模板类实现.h和.cpp分离
- .h和.cpp
- .h和.cpp
- .cpp和.h
- .h和.cpp
- .h和.cpp区别
- DXUT.H / DXUT.CPP 解析
- C/c++编译器如何看待h和cpp文件
- C++,软件结构中.Cpp和.h的关系
- C++——如何理解.h文件和.cpp文件
- Android加密之全盘加密
- 接口测试:xml和json的基本知识
- Android的性能优化1
- android传感器
- 设计模式--桥接模式(与装饰模式的区别)
- .c和.h与.cpp解析
- Git 设置别名
- xcode account登录不上去sign apple id -> this action could not be completed. try again
- 《深入理解Bootstrap》读书笔记(二)
- 删除 linux 文件中的中文字符
- 210. Course Schedule II
- pandas中的两种数据类型Series和DataFrame区别
- 错误处理机制
- 11.16 WEB处理机制和BOM模型