在文本文件模式下:当给文件写入'\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 语言
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)