C语言中的源程序文件和目标文件的扩展名分别是

C语言中的源程序文件和目标文件的扩展名分别是,第1张

C语言源代码文件一般扩展名为c,目标文件扩展名一般为obj,生成的可执行文件扩展名一般为exe。

不同平台的C源代码扩展名都为c,但目标文件扩展名不同,例如: 在Linux平台上,生成的可执行文件一般扩展为out。

源文件:这是指由源程序和数据构成的文件。通常由终端或输入设备输入的源程序和数据所形成的文件都属于源文件。它通常是由 ASCII 码或汉字所组成的。

目标文件:这是指把源程序经过相应语言的编译程序编译过,但尚未经过链接程序链接的目标代码所构成的文件。它属于二进制文件。

可执行文件:这是指把编译后所产生的目标代码再经过链接程序链接后所形成的文件。

扩展资料:

源文件,目标文件,可执行文件的联系:

源文件就是用汇编语言或高级语言写出来的代码保存为文件,目标文件是指源文件经过编译程序产生的能被cpu直接识别二进制文件。将目标文件链接起来就成了可执行文件。

源代码与源文件:

源代码(也称源程序)是指未编译的按照一定的程序设计语言规范书写的文本文件,是一系列人类可读的计算机语言指令。 在现代程序语言中,源代码可以是以书籍或者磁带的形式出现,但最为常用的格式是文本文件,这种典型格式的目的是为了编译出计算机程序。

计算机源代码的最终目的是将人类可读的文本翻译成为计算机可以执行的二进制指令,这种过程叫做编译,通过编译器完成。在大多数情况下,源代码等于源文件。

参考资料来源:百度百科-源文件

微信小程序的大小不能超过2M。如果超过2M也有些解决方案:

压缩或者是将等资源放入服务器

采用分包加载策略。如何分包,可以看下微信小程序的官网,有详细说明

一、程序开发步骤:

1、分析需求:根据客户提出的消防弱电系统需求,分析弱电系统的功能、技术参数、安装接线等技术要求;

2、设计程序:根据前面的功能分析,精心设计消防弱电系统的控制程序,编制程序说明书、测试报告,确保消防设备的正常运行;

3、开发实现:利用控制程序的设计,用适当的语言实现。通过测试,确保程序运行稳定;

4、实施监督:将程序安装在消防弱电系统上,实施监督,确保系统运行正常;

5、维护更新:根据客户的新需求,不断更新和完善消防弱电系统程序,确保系统达到最佳性能。

二、编写程序文件:

1、编写程序说明书:详细地描述消防弱电系统的功能、结构、界面、运行流程、技术参数、安装接线等信息;

2、编写程序代码:用适当的编程语言,编写程序代码,根据客户的需求实现功能;

3、测试报告:进行程序的功能测试,检验语句的正确性,确保程序能够运行正常;

4、技术支持文件:收集和归纳消防弱电系统的技术文档,为客户提供必要的技术支持。

不是完全是这样。

1一般交存处理:《计算机软件著作权登记办法》第十条规定:“软件的鉴别材料包括程序和文档的鉴别材料。程序和文档的鉴别材料应当由源程序和任何一种文档前、后各连续30页组成。整个程序和文档不到60页的,应当提交整个源程序和文档。除特定情况外,程序每页不少于50行,文档每页不少于30行。”意思是说“源程序和文档应提交前、后各连续30页,不足60页的,应当全部提交”。

2例外交存处理::《计算机软件著作权登记办法》第十二条规定:“申请软件著作权登记的,可以选择以下方式之一对鉴别材料作例外交存:(一)源程序的前、后各连续的30页,其中的机密部分用黑色宽斜线覆盖,但覆盖部分不得超过交存源程序的50%;(二)源程序连续的前10页,加上源程序的任何部分的连续的50页;(三)目标程序的前、后各连续的30页,加上源程序的任何部分的连续的20页。文档作例外交存的,参照前款规定处理。”

1 使用整数(Integer)和长整数(Long)

提高代码运行速度最简单的方法莫过于使用正确的数据类型了。也许你不相信,但是正确地选择数据类型可以大幅度提升代码的性能。在大多数情况下,程序员可以将Single,Double和Currency类型的变量替换为Integer或Long类型的变量,因为VB处理Integer和Long的能力远远高于处理其它几种数据类型。

在大多数情况下,程序员选择使用Single或Double的原因是因为它们能够保存小数。但是小数也可以保存在Integer类型的变量中。例如程序中约定有三位小数,那么只需要将保存在Integer变量中的数值除以1000就可以得到结果。根据我的经验,使用Integer和Long替代Single,Double和Currency后,代码的运行速度可以提高将近10倍。

2 避免使用变体

对于一个VB程序员来说,这是再明显不过的事情了。变体类型的变量需要16个字节的空间来保存数据,而一个整数(Integer)只需要2个字节。通常使用变体类型的目的是为了减少设计的工4作量和代码量,也有的程序员图个省事而使用它。但是如果一个软件经过了严格设计和按照规范编码的话,完全可以避免使用变体类型。

在这里顺带提一句,对于Object对象也存在同样的问题。请看下面的代码:

Dim FSO

Set FSO = New ScriptingFileSystemObject

Dim FSO as object

Set FSO = New ScriptingFileSystemObject

上面的代码由于在申明的时候没有指定数据类型,在赋值时将浪费内存和CPU时间。正确的代码应该象下面这样:

Dim FSO as New FileSystemObject

3 尽量避免使用属性

在平时的代码中,最常见的比较低效的代码就是在可以使用变量的情况下,反复使用属性(Property),尤其是在循环中。要知道存取变量的速度是存取属性的速度的20倍左右。下面这段代码是很多程序员在程序中会使用到的:

Dim intCon as Integer

For intCon = 0 to Ubound(SomVar())

Text1Text = Text1Text & vbcrlf & SomeVar(intCon)

Next intCon

下面这段代码的执行速度是上面代码的20倍。

Dim intCon as Integer

Dim sOutput as String

For intCon = 0 to Ubound(SomeVar())

sOutput = sOutput & vbCrlf &

SomeVar(intCon)

Next

Text1Text = sOutput

4 尽量使用数组,避免使用集合

除非你必须使用集合(Collection),否则你应该尽量使用数组。据测试,数组的存取速度可以达到集合的100倍。这个数字听起来有点骇人听闻,但是如果你考虑到集合是一个对象,你就会明白为什么差异会这么大。

5 展开小的循环体

在编码的时候,有可能遇到这种情况:一个循环体只会循环2到3次,而且循环体由几行代码组成。在这种情况下,你可以把循环展开。原因是循环会占用额外的CPU时间。但是如果循环比较复杂,你就没有必要这样做了。

6 避免使用很短的函数

和使用小的循环体相同,调用只有几行代码的函数也是不经济的--调用函数所花费的时间或许比执行函数中的代码需要更长的时间。在这种情况下,你可以把函数中的代码拷贝到原来调用函数的地方。

7 减少对子对象的引用

在VB中,通过使用来实现对象的引用。例如:

Form1Text1Text

在上面的例子中,程序引用了两个对象:Form1和Text1。利用这种方法引用效率很低。但遗憾的是,没有办法可以避免它。程序员唯一可以做就是使用With或者将用另一个对象保存子对象(Text1)。

注释: 使用With

With frmMainText1

Text = "Learn VB"

Alignment = 0

Tag = "Its my life"

BackColor = vbBlack

ForeColor = vbWhite

End With

或者

注释: 使用另一个对象保存子对象

Dim txtTextBox as TextBox

Set txtTextBox = frmMainText1

TxtTextBoxText = "Learn VB"

TxtTextBoxAlignment = 0

TxtTextBoxTag = "Its my life"

TxtTextBoxBackColor = vbBlack

TxtTextBoxForeColor = vbWhite 注意,上面提到的方法只适用于需要对一个对象的子对象进行 *** 作的时候,下面这段代码是不正确的:

With Text1

Text = "Learn VB"

Alignment = 0

Tag = "Its my life"

BackColor = vbBlack

ForeColor = vbWhite

End With

很不幸的是,我们常常可以在实际的代码中发现类似于上面的代码。这样做只会使代码的执行速度更慢。原因是With块编译后会形成一个分枝,会增加了额外的处理工作。

8 检查字符串是否为空

大多数程序员在检查字符串是否为空时会使用下面的方法:

If Text1Text = "" then

注释: 执行 *** 作

End if

很不幸,进行字符串比较需要的处理量甚至比读取属性还要大。因此我建议大家使用下面的方法:

If Len(Text1Text) = 0 then

注释: 执行 *** 作

End if

9 去除Next关键字后的变量名

在Next关键字后加上变量名会导致代码的效率下降。我也不知道为什么会这样,只是一个经验而已。不过我想很少有程序员会这样画蛇添足,毕竟大多数程序员都是惜字如金的人。

注释: 错误的代码

For iCount = 1 to 10

注释: 执行 *** 作

Next iCount

注释: 正确的代码

For iCount = 1 to 10

注释: 执行 *** 作

Next

10 使用数组,而不是多个变量

当你有多个保存类似数据的变量时,可以考虑将他们用一个数组代替。在VB中,数组是最高效的数据结构之一。

11 使用动态数组,而不是静态数组

使用动态数组对代码的执行速度不会产生太大的影响,但是在某些情况下可以节约大量的资源。

12 销毁对象

无论编写的是什么软件,程序员都需要考虑在用户决定终止软件运行后释放软件占用的内存空间。但遗憾的是很多程序员对这一点好像并不是很在意。正确的做法是在退出程序前需要销毁程序中使用的对象。例如:

Dim FSO as New FileSystemObject

' 执行 *** 作

' 销毁对象

Set FSO = Nothing

对于窗体,可以进行卸载:

Unload frmMain

Set frmMain = Nothing

13 变长和定长字符串

从技术上来说,与变长字符串相比,定长字符串需要较少的处理时间和空间。但是定长字符串的缺点在于在很多情况下,你都需要调用Trim函数以去除字符串末的空字符,这样反而会降低代码效率。所以除非是字符串的长度不会变化,否则还是使用变长字符串。

14 使用类模块,而不是ActiveX控件

除非ActiveX控件涉及到用户界面,否则尽量使用轻量的对象,例如类。这两者之间的效率有很大差异。

15 使用内部对象

在涉及到使用ActiveX控件和DLL的时候,很多程序员喜欢将它们编译好,然后再加入工程中。我建议你最好不要这样做,因为从VB连接到一个外部对象需要耗费大量的CPU处理能力。每当你调用方法或存取属性的时候,都会浪费大量的系统资源。如果你有ActiveX控件或DLL的源代码,将它们作为工程的私有对象。

16 减少模块的数量

有些人喜欢将通用的函数保存在模块中,对于这一点我表示赞同。但是在一个模块中只写上二三十行代码就有些可笑了。如果你不是非常需要模块,尽量不要使用它。这样做的原因是因为只有在模块中的函数或变量被调用时,VB才将模块加载到内存中;当VB应用程序退出时,才会从内存中卸载这些模块。如果代码中只有一个模块,VB就只会进行一次加载 *** 作,这样代码的效率就得到了提高;反之如果代码中有多个模块,VB会进行多次加载 *** 作,代码的效率会降低。

17 使用对象数组

当设计用户界面时,对于同样类型的控件,程序员应该尽量使用对象数组。你可以做一个实验:在窗口上添加100个PictureBox,每个PictureBox都有不同的名称,运行程序。然后创建一个新的工程,同样在窗口上添加100个PictureBox,不过这一次使用对象数组,运行程序,你可以注意到两个程序加载时间上的差别。

18 使用Move方法

在改变对象的位置时,有些程序员喜欢使用Width,Height,Top和Left属性。例如:

Image1Width = 100

Image1Height = 100

Image1Top = 0

Image1Left = 0

实际上这样做效率很低,因为程序修改了四个属性,而且每次修改之后,窗口都会被重绘。正确的做法是使用Move方法:

Image1Move 0,0,100,100

19 减少的使用

将占用大量内存,而且处理也需要占用很多CPU资源。在软件中,如果可能的话,可以考虑用背景色来替代--当然这只是从技术人员的角度出发看这个问题。

20 使用ActiveX DLL,而不是ActiveX控件

如果你设计的ActiveX对象不涉及到用户界面,使用ActiveX DLL。

编译优化

我所见过的很多VB程序员从来没有使用过编译选项,也没有试图搞清楚各个选项之间的差别。下面让我们来看一下各个选项的具体含义。

1 P-代码(伪代码)和本机代码

你可以选择将软件编译为P-代码或是本机代码。缺省选项是本机代码。那什么是P-代码和本机代码呢?

P-代码:当在VB中执行代码时,VB首先是将代码编译为P-代码,然后再解释执行编译好的P-代码。在编译环境下,使用这种代码要比本机代码快。选择P-代码后,编译时VB将伪代码放入一个EXE文件中。

本机代码:本机代码是VB6以后才推出的选项。当编译为EXE文件后,本机代码的执行速度比P-代码快。选择本机代码后,编译时VB使用机器指令生成EXE文件。

在使用本机代码进行编译时,我发现有时候会引入一些莫名其妙的错误。在编译环境中我的代码完全正确地被执行了,但是用本机代码选项生成的EXE文件却不能正确执行。通常这种情况是在卸载窗口或d出打印窗口时发生的。我通过在代码中加入DoEvent语句解决了这个问题。当然出现这种情况的几率非常少,也许有些VB程序员从来没有遇到过,但是它的确存在。

在本机代码中还有几个选项:

a) 代码速度优化:该选项可以编译出速度较快的执行文件,但执行文件比较大。推荐使用

b) 代码大小优化:该选项可以编译出比较小的执行文件,但是以牺牲速度为代价的,不推荐使用。

c) 无优化:该选项只是将P-代码转化为本机代码,没有做任何优化。在调试代码时可以使用。

d) 针对Pentium Pro优化:虽然该项不是本机代码中的缺省选项,但是我通常会使用该选项。该选项编译出的可执行程序在Pentium Pro和Pentium 2以上的机器上可以运行得更快,而在比较老的机器上要稍稍慢一些。考虑到现在用Pentium 2都是落伍,所以推荐大家使用该选项。

e) 产生符号化调试信息:该项在编译过程中生成一些调试信息,使用户可以利用Visual C++一类的工具来调试编译好的代码。使用该选项会生成一个pdf文件,该文件记录了可执行文件中的标志信息。当程序拥有API函数或DLL调用时,该选项还是比较有帮助的。

2 高级优化

高级优化中的设置可以帮助你提高软件的速度,但是有时候也会引入一些错误,因此我建议大家尽量小心地使用它们。如果在代码中有比较大的循环体或者复杂的数学运算时,选中高级优化中的某些项会大幅度提升代码的性能。如果你使用了高级优化功能,我建议你严格测试编译好的文件。

a) 假定无别名:可以提高循环体中代码的执行效率,但是在如果通过变量的引用改变变量值的情况下,例如调用一个方法,变量的引用作为方法的参数,在方法中改变了变量的值的话,就会引发错误。有可能只是返回的结果错误,也有可能是导致程序中断运行的严重错误。

b) 取消数组绑定检查、取消整数溢出检查和取消浮点错误检查:在程序运行时,如果通过这些检查发现了错误,错误处理代码会处理这些错误。但是如果取消了这些检查,发生了错误程序就无法处理。只有当你确定你的代码中不会出现上面的这些错误时,你才可以使用这些选项。它们将使软件的性能得到很大的提升。

c) 允许不舍入的浮点 *** 作:选择该选项可以是编译出来的程序更快地处理浮点 *** 作。它唯一的缺点就是在比较两个浮点数时可能会导致不正确的结果。

d) 取消Pentium FDIV安全检查:该选项是针对一些老的Pentium芯片设置的,现在看来已经过时了。

数 值 叙 述

0 0x0000 作业完成。

1 0x0001 不正确的函数。

2 0x0002 系统找不到指定的文件。

3 0x0003 系统找不到指定的路径。

4 0x0004 系统无法开启文件。

5 0x0005 拒绝存取。

6 0x0006 无效的代码。

7 0x0007 内存控制块已毁。

8 0x0008 内存空间不足,无法处理这个指令。

9 0x0009 内存控制块地址无效。

10 0x000A 环境不正确。

11 0x000B 尝试载入一个格式错误的程序。

12 0x000C 存取码错误。

13 0x000D 资料错误。

14 0x000E 内存空间不够,无法完成这项作业。

15 0x000F 系统找不到指定的磁盘。

16 0x0010 无法移除目录。

17 0x0011 系统无法将文件移到其他的磁盘。

18 0x0012 没有任何文件。

19 0x0013 储存介质为只读状态。

20 0x0014 系统找不到指定的装置。

21 0x0015 装置尚未就绪。

22 0x0016 装置无法识别指令。

23 0x0017 资料错误 (cyclic redundancy check) 中国网管论坛bbsbitsCNcom

24 0x0018 程序发出一个长度错误的指令。

25 0x0019 磁盘找不到持定的扇区或磁道。

26 0x001A 指定的磁盘无法存取。

27 0x001B 磁盘找不到要求的扇区。

28 0x001C 打印机没有纸。

29 0x001D 系统无法将资料写入指定的磁盘。

30 0x001E 系统无法读取指定的装置。

31 0x001F 连接到系统的某个装置没有作用。

32 0x0020 进程不能访问此文件,因为文件正在被其他进程使用

33 0x0021 文件的一部份被锁定, 现在无法存取。

34 0x0022 磁盘的盘片不正确。 请将 %2 (Volume Serial Number: %3) 插入磁盘控制器 %1。

36 0x0024 开启的分享文件数量太多。

38 0x0026 到达文件结尾。

39 0x0027 磁盘已满。

50 0x0032 不支持这种网络要求。

51 0x0033 远端电脑无法使用。

52 0x0034 网络名称重复。

53 0x0035 网络路径找不到。

54 0x0036 网络忙碌中。

55 0x0037 特定的网络资源或者设备不再可用。

56 0x0038 已经到了网络BIOS命令的极限。

57 0x0039 网络适配器发生问题。

网管联盟>

我说说思路:

一,解决输入并保存信息的功能:

因为,要有输入信息的功能,所以要解决输入并保存信息的功能,有两种方法;

1,采用VBA,在WORD或者EXCEL里。

2,你自己编写文本编辑器。

二,按照你的要求:

1,程序要有设置时间的功能。

2,每次输入信息完毕,进行文件保存。

3,文件格式分为上下两大块,中间用设置的时间突出显示作为分隔;

4,保存的时候,首先判断当天是否已经有保存的文件,如果有就打开现有文件,如果没有,保存为当日新文件。

如果已经有文件,打开文件,并判断时间,按照你说的时间节点,如果时间在规定时间前,那么新的内容输入在原内容后;如果过了规定时间,那么打开文件后,自动在文件结束处,增加一行用规定的时间作为内容的分隔行,并另起一行,编辑输入新的数据。

以上就是关于C语言中的源程序文件和目标文件的扩展名分别是全部的内容,包括:C语言中的源程序文件和目标文件的扩展名分别是、微信小程序代码文件夹有没有大小限制的、消防弱电如何写程序文件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9337545.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存