Objc语言

C语言源程序的文件名后缀为. c. C源程序由C编译器编译生成带后缀的二进制文件。OBJ,

然后叫“链接器”的软件把这个连接起来。OBJ文件用C语言提供的各种库函数生成一个带后缀的可执行文件。exe。

用高级语言编写的程序称为“源程序”,用二进制代码表示的程序称为“目标程序”。为了将源程序转换成机器可接受的目标程序,我们需要具有翻译功能的软件——“编译器”。每一种高级语言都有相应的编译器。

扩展数据

1.目标文件的扩展名是“”。obj"(Windows)或"。o”(Linux)。目标文件已经是机器指令了,但是还不能运行,因为目标文件还没有解决函数调用问题。

2.可执行文件的扩展名是“”。exe”。

objective-c属于什么语言? Objective-C是一门非常实用的语言。它使用了一个非常小的用C写的运行时,只会很小的增加应用程序的大小,与大多数OO系统用一个巨大的VM执行时间来代替整个系统的运行相反。ObjC编写的程序通常不会比其原始代码大多少。而它的函数库(通常不依附于软件分发)也是Smalltalk系统需要使用大量内存来打开一个窗口的情况的反面。Objective-C的原始版本不支持垃圾收集。当时这是争论的焦点之一。许多人认为Smalltalk回收时有一个很长的“死亡时间”,这使得整个系统毫无用处。Objective-C没有这个函数来避免这个问题。虽然一些第三方版本增加了这一功能(尤其是GNUstep),但苹果并没有在其Mac OS X 10.3中引入这一功能。

另一个问题是ObjC不包括名称空间机制。相反,程序员必须给他们的类名加上前缀,这经常会导致冲突。2004年,在Cocoa编程环境中,所有的Mac OS X类和函数都以“NS”为前缀,比如NSObject或NSButton,以明确区别于Mac OS X内核;使用“NS”的原因是这些类别的名称是在NeXTSTEP的开发过程中确定的。

Objective-C虽然是C的母集,但并不把C的基本类型作为一级对象。与C不同,Objective-C不支持运算符重载(它不支持即席多态)。它也不同于C,但和Java一样,Objective-C只允许对象继承一个类(没有多重继承)。类别和协议不仅可以提供多重继承的许多好处,也有许多缺点,如执行时间过长和二进制不兼容。

在的解释下。用C语言编译的obj文件。 的。用C语言编译的obj文件是一种文本文件。程序编译时生成的中间代码文件目标文件一般是程序编译后的二进制文件,然后通过链接器与资源文件链接成为可执行文件。OBJ只给出程序的相对地址,而可执行文件是绝对地址。

OBJ文件的基本结构:obj文件不需要任何种类的文件头,虽然经常用几行文件信息的注释作为文件的开头。

OBJ文件由文本行组成,注释行以符号“#”开头。可以随意在文件中添加空格和空行,以提高文件的可读性。有字的一行以一两个标记字母开头,也就是关键字,可以说明这一行是什么样的数据。

扩展数据:

C编译的整个过程非常复杂,大致可以分为以下几个阶段:

1.预处理阶段

在这个阶段,主要完成源代码的预处理,包括宏定义指令、包含指令的头文件、预定义指令和特殊字符,比如宏定义的替换、文件头包含的文件中预定义代码的替换。简而言之,这一步主要完成一些替换工作,输出的是意义相同但内容不同的文件。

2.编译和优化阶段

编译是通过词法语法分析,将第一阶段处理的文件转换成汇编语言。优化包括中间代码的优化,如删除常用表达式、循环优化等;以及优化目标代码的生成,比如如何充分利用机器的寄存器来存储相关变量的值,从而减少内存访问的次数。

3.组装阶段

将汇编语言翻译成机器指令。

参考来源:百度百科-c语言

c语言中的Obj obj文件是一个对象文件,通常是编译好的二进制文件,通过链接器与资源文件链接成为exe文件。

OBJ只给出程序的相对地址,而EXE是绝对地址。

OBJ文件不支持带孔的多边形面。

例如:

选择Maya的多边形-创建多边形工具,在视图中画一个四边形,按住Ctrl键在四边形的中间点一下,就可以继续在四边形上挖洞了。以OBJ格式保存这个带孔的多边形,当导入到Maya中时,会发现少了一个多边形。如果你认为这是一个错误,至少现在你知道错误的原因了,那就是OBJ文件不支持带孔的多边形面。

OBJ档案-实际问题:

现在让我们讨论一个更实际的问题,即一旦你遇到一个错误的OBJ文件,你该怎么办?

当你打开OBJ文件时,你经常会看到成千上万行代码。恐怕你还没有一眼看到错行,除非你已经在程序的错误信息里被告知错行了。如果不知道错误在哪里,可以用排除法找出正确的代码范围,通过缩小错误码范围来定位错误。例如,首先创建一个空的OBJ文件,粘贴一半错误的OBJ文件代码,然后将这个只有一半代码的新OBJ文件导入到Maya中。如果此时没有错误消息,说明错误行在另一半代码中,可以尝试从另一半代码中粘贴另一部分代码。如果此时出现错误,说明错误行在粘贴的代码中。您可以删除一部分粘贴的代码,然后重试。这样逐渐缩小范围,直到发现错误行为。

这个方法虽然麻烦,但是还是挺有效的。如果你不会编程,而且情况非常紧急,这个方法值得一试。

OBJ文件-详细信息:

掌握这么多就差不多了,但是由于网上很少有详细解释OBJ档案的中文文献,我还是多讲一些例子给你提供更多的信息吧。

简单的OBJ格式写作。

#简单波前文件

v 0.0 0.0 0.0

v 0.0 1.0 0.0

版本1.0 0.0 0.0

f 1 2 3

人脸可以用负指数,有时候用负指数描述人脸更容易。

“f -4 -3 -2 -1”的索引值“-3”表示从“f”线开始的第三个顶点,为“v -0.500000 0.000000 -0.800000”,其他索引值以此类推。所以,这一行的等价正指标写成“f 1 2 3 4”。

v -0.500000 0.000000 0.400000

0.000000至0.800000

1.000000至0.800000

v -0.500000 1.000000 0.400000

f -4 -3 -2 -1

OBJ文件不包含人脸的颜色定义信息,但是可以参考素材库,素材库信息存储在一个独立的文件中,后缀为“.”。mtl”。关键字“mtllib”的意思是素材库。

素材库包含漫反射、环境光和镜面反射材质的RGB(红色、绿色和蓝色)定义值,以及反射率、折射和透明度等其他特性。

在“usemtl”指定材料后,所有未来的面将使用该材料,直到下一个“usemtl”指定新材料。

相关文章

发表新评论