c语言如何创建二进制文件?

c语言如何创建二进制文件?,第1张

在windows系统下,C语言打开文件的"文本文件"方式和"二进制文件方式"的区别是:

在文本文件模式下:当给文件写入'\n'时,实际会写入握行'\r''\n',读文件时如果读到\r\n,会丢弃\r只保留\n, 除此以外,和二进制方式没有任何区别

举例:

FILE* fp

fp = fopen("123", "w")

fputc(10,fp) //10就是\n 但实际上会对文件写入\r\n,你用16进制编辑器打开123,会看到0D0A 两个字符

fclose(fp)

甚至这样:

fp = fopen("123", "w")

int n = 1116682 //这是16进制的0x110A0A

fwrite(&n, 4, 1, fp) //因为那数字字节里有0A,写入时会挤进去0D实际写缓拆入0D0A0D0A1100

fclose(fp)

而这样就只写入0A

fp = fopen("123", "wb")

fputc(10,fp) //只写入0A

至段哪哗于你看到的"仍是文本文件",是因为你对文件写入的内容就是些文本而已

所有文件都是二进制的,文本文件只是文件的内容都是些ASCII或者unicode等可读的字符而已

不是,C语言采用编译方式将源程序转换为二进制的目标代码。使用C语言编译器来完成。

所谓C语言编译器,就是把编程链梁得到的文件,比如.c,.h的文件,进行读取,并对内容进行分析,按照C语言的规则,将其转换成cpu可以执行的二进制文件。其本质在于对文件的读入,分棚兆运析,及处理。

C语言编写的程序代码称为源程序,对于计算机猜纳本身来说,它并不能直接识别由高级语言编写的程序。C语言程序经C语言编译程序编译后,生成后缀为.obj的二进制文件 (称为目标文件)。

此.obj文件必须与系统提供的各种库函数连接起来生成一个后缀为.exe的可执行文件才可以执行。C语言的可执行文件由一系列机器指令构成的。

扩展资料

解释执行和编译执行是计算机语言的执行方式。解释执行由解释器现场解释执行,不生成目标程序。如BASIC便是解释执行,一般解释执行效率较低,低于编译执行。

编译执行由编译程序将目标代码一次性编译成目标程序,再由机器运行目标程序。如:PASCAL,C,C++,delphi等语言。效率高于解释执行。

参考资料:百度百科 - C 语言


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

原文地址: http://outofmemory.cn/tougao/12267445.html

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

发表评论

登录后才能评论

评论列表(0条)

保存