C/c++编译器如何看待h和cpp文件
来源:互联网 发布:青少年行知实践园在哪 编辑:程序博客网 时间:2024/05/20 02:53
h头和cpp文件都是源码文件,代码可以在h中也可以在cpp中
#include 相当于包含 ,h中的代码会被包含进#include 它的cpp文件中, #pragma 表示只include一次,
通常 h只有声名满程序include 来使用,使cpp是实体一内有函数和变量实体,一般不
h头是声名使用 ,分继承头和使用头,继承头必须加一子类h头中,使用头必须加在cpp文件中(采用的是错乱交织形态include进去)
Cpp为定义和使用程序实体 一个CPP文件生成一个obj链接文件,会把h中的代码一起编译生成obj。 class struct下可有代码 相当于定义。 编译器只根椐cpp文件去生成obj,后链接
生成dll /exe ocx等二进制文件。
若h中有多个实体代码 h被多个cpp include进入便会在多个obj文件中包含 出现link 2005错误
编译以cpp为单位,h头可有代码实体也可以为声名(不过最好是声名) cpp文件 不依赖于h头而存在,C/C++以CPP文件为主,h头只是附代用来声明,CPP 或C相当于 java中的
java C#中的cs文件,java和C#不用用户自己声名,import 和using会生成声名并且不会重复import/using CC++通过 #pragma once保证在同一个文件中不会重复包含头文件
但是不同的CPP中可以包含同一个头文件,若头文件中有定义也会编译成obj文件,当链接时发生link 2005错误
#pragma once 仅相对于同一个CPP文件,#inlude不重复包含 头文件。
应用中的常量解决方案 constant.h声明,constant.cpp是定义
与stdafx.h 和stdafx.cpp 相似, VS2010 有些独立的CPP
h中用宏定义反回消息值
汇编 和 C/C++ 中有预编译 宏定义
java 中无预编译
C#中也有预编译
CC++中的依赖树关系
编译原理:h头声明 cpp为定义实体 一个cpp对应一个obj ,生成的obj 链接生成 lib dll(有限个接口) exe (有入口的程序)可直接运行)
link 重复 为在 两个CPP中定义同一个变量
lib文件lib依赖树关系
CPP 完整link成lib文件,可以就lib是cpp的结合体,lib中不能定义相同的变量
#pragma comment(lib,"libcmt.lib")
#pragma comment(lib,"msvcrt.lib")
lib中不链接入lib文件,只有lib链接语句,
两个lib中同时lib同一个lib会重复吗 lib中可以链接新的lib进入,lib只是cpp写的代码 不进行链lib文件的包含链接入自身中,
(vs2010)#pragma lib不会重复加载lib
dll文件
dll也有lib,lib中只有dll的声明,dll实体被单独load进入内存,(lib被包括进入可执行程序)lib要link生成obj
dll和可执行都是相互独立互不干扰,属于运行实体
lib是纯正的类库体,所有的lib静态库不能重复定义
- C/c++编译器如何看待h和cpp文件
- C++——如何理解.h文件和.cpp文件
- ‘.C’文件和‘.H’文件如何组织
- 如何看待C语言
- .c 文件和 .cpp 文件
- .c和.h与.cpp解析
- .c .cpp .h
- .c和.h文件
- c中头文件在cpp文件中引用和.h文件引用的思考
- 【学习C++】两个源文件CPP(cpp与cpp) 或 头文件h与源文件cpp
- 头文件在.c/.cpp中引用和.h文件引用
- C/C++--模板类实现.h和.cpp分离
- .h文件和.c文件
- 让gvim的NERDTree只显示.h .c .cc .cpp等头文件和源文件
- .C文件和.CPP文件的区别
- cpp文件和.h文件
- .h和.c文件解析
- C++,软件结构中.Cpp和.h的关系
- 4g网路发展路程
- u-boot_smdkv210 分析八:MMU地址映射
- poj 3311 (状态压缩dp)
- 我自己的26种SEO策略
- 直接用编译器按ctrl+F5运行和双击运行结果不一样
- C/c++编译器如何看待h和cpp文件
- C++ set自定义排序规则(nyist 8)
- C++中实现单例模式
- (jsp和servlet功能篇)jsp+Jquery实现点击行,获取行数据
- HTTP协议 (六) 状态码详解
- mysql replication 复制的一些问题
- Binary Lexicographic Sequence
- C++test
- 技术人员如何面试?