⑴ 翻译单元和文件的理解
你首先要弄清编译原理和过程
预处理是什么回事
才能理解这段话的意思
否则我下面的回答你也一定看不明白的
.
在c源代码中
所有#打头的行都是编译指令(也叫宏指令)
而不是c语句(所以没有分号结尾)
这些编译指令的作用就是对源代码进行预处理
然后再把预处理的结果进行编译
.
【翻译单元】就是把一个c源文件做预处理之后得到的结果
这个结果只是一个临时文件
文中说的【后面那个单独文件】就是指这个文件
因为接着就要自动进行编译
通常个文件都不保存到硬盘
所以只是一个逻辑文件
不是一个物理文件
而存在硬盘上的源代码文件就被叫做【物理文件】
.
【文件依次包含其他头文件】
就是指头文件里还可以有“#include”指令
最后都要依次层层展开
由一个个物理文件组合成一个逻辑文件
这就是编译单元——【后面那个单独文件】
.
【是源代码和头文件二者合一看成是一个单独文件;还是源代码和头文件均为独立文件?】
你这一问句表明你对【单独文件】的意思完全不理解而乱说一通
没有任何意义的
.
建议你先弄清编译原理
再来看这段话
⑵ 在同一编译单元用extern和不用有什么区别
对函数来说没区别,不用extern的函数默认就是extern的,即其他文件也可以调用这个函数;但对变量来说有区别,不用extern声明变量的话,变量默认是static的,其他文件不能使用这个变量。那么如果所有函数和变量都只放在一个文件里进行编译,用不用extern就没有任何区别了。
⑶ 保存 失败 编译单元名必须以 .java 或者某个已注册的类似于 Java 的扩展名结尾,请问这是咋回事
这个可能是你用文本编辑的时候,默认了扩展名。你把文件夹选项里的那个隐藏已知文件类型的扩展名,点工具-文件夹选项-查看-勾上隐藏已知文件类型的扩展名。这样以后,再重新编辑保存。
⑷ JAVA问题:什么叫做一个编译单元
当一个c或cpp文件在编译时,预处理器首先递归包含头文件,
形成一个含有所有
必要信息的单个源文件,这个源文件就是一个编译单元。
这个编译单元会被编译成为一个与cpp
文件名同名的目标文件
。
连接程序把不同编译单元中产生的符号联系起来,构成一个可执行程序。
⑸ c语言编程(函数和预编译单元习题)
均值、方差、最大值与最小值、顺序查找、排序,这几个功能模块用switch实现,功能模块可以通过编写相应的函数调用实现。
⑹ 编译单元的介绍
当一个c或cpp文件在编译时,预处理器首先递归包含头文件,形成一个含有所有必要信息的单个源文件,这个源文件就是一个编译单元。
⑺ 在C/C++中,什么叫编译单元
可以这样的理解:
编译单元
当一个c或cpp文件在编译时,预处理器首先递归包含头文件,
形成一个含有所有 必要信息的单个源文件,这个源文件就是一个编译单元。
这个编译单元会被编译成为一个与cpp 文件名同名的目标文件 。
连接程序把不同编译单元中产生的符号联系起来,构成一个可执行程序。
⑻ 在java中,什么是编译单元。如何根据编译单元创建类库,又如何使用这个类库。
猪哥解答:
c领域倒是有编译单元的说法,java 中没有听说。
类库吗,功能类集合,就是一组类放一起来实现某个功能。不要太去追概念性的东西,什么白猫黑猫,能抓老鼠才是好猫。
类库举例:人、购物车、超市、商品,人去超市购买商品,道具是购物车,那我要准备几个类
人.java,购物车.java,超市.java,商品.java,这几个类通过人这个拥有各种动作行为(方法)的类联系到一起,实现了人推车在超市中买商品的购物动作。
那么我这也就是一个类库,多个类集中到一起,为了实现人购买商品这个功能。
⑼ java中一个编译单元只能有一个公共类写两个怎末不报错呢
会报错的。
如图: