导航:首页 > 源码编译 > 程序在编译通过以后

程序在编译通过以后

发布时间:2023-03-18 19:18:26

A. 我写的一个程序编译通过,但运行是报错。 这是出了什么问题

这是逻辑错误,就是说代码在语法上没有错误,但是在逻辑上有问题,因此没办法执行。
处理这种问题,可以通过调试,来看看哪一块代码逻辑上有问题(就是说没有达到预期的效果)。

B. C语言程序编译成功了,为什么连接还出错

1 编译阶段,执行的是对单个文件的转换,从源代码转换成二进制文件。
2 链接阶段,将每个源文件转成的二进制文件,及相关的系统库文件共同打包生成可执行文件。
3 从定义上可以看出,链接阶段,出现错误有两种可能:
1) 函数中引用了不存在的函数。
2) 编译环境有问题,导致ld出错。

C. java源程序编译过后的文件是什么文件

1.
java文件编译过后会生成一个class文件,里面是以二进制方式存放的代码
2.
机器可以识别class文件中的内容,然后作出相应的操作。

D. 为什么这个程序编译通过了,运行起来会出错呢

编译通过只代表程序没有语法错误,不代表程序会达到预期的效果
不过我把这程序改成c以后(就把include,namespace去掉,扮卖cout换成printf,cin换成getch),运行没问题,结果正常

不知道你说得不对是不是因为输出的是hellow,这是正确结果,因为数组的第一个位置是0,你p[5]的话等于是吧字符串的结束符换掉了,如果后面再有点别的什么字的话,仍属结果正常

弹出错误报告的原因可能是因为hellow后面的某些字符导致系统错误或其他不可预知的结果,你没听到pc喇叭响就已经很幸运了……

还有巫毒猫,你利利落常量和变量都是什么了吗就来这忽悠人家……你的意思这样“常量”就不能改了啊,那程序里常量变量就永远是对立的两方面了,你告诉你我怎么赋值,你的循环是写成for(i=0;i<x;i++)吗?照你的理论,0是常量,给i以后就不能改了,那还怎么加啊,回去先把基础知识恶补一下再来忽悠人……
-----------------------
程序的问题,我说了,没有语法错误,编译就能通过,而最后出错的原因,只是在输出字符串的时候遇到了导致错误的字符,这个字符可能导致c底层函数错误,或者向程序发送了错误的指示造成,你如果一定追问那个字符是什么,对不起,我也不知道。另外要说的,你这题的分数确实没有什么可同情人家的价值,在说到这来回答问题的大概没有专奔那个分来的吧,如果那样的话,每天登陆5分,投票20分,灌水20分,这每天就45分,要是提个问再按期处理又10分,没有到你这来蒙含缺粗这5分玩的必要,也比蒙你这5分快吧。

另外开始回答猫的问题:
我针对你的只是常量和变量的问题,"hello"写在这是个字符串,当然你可以勉强把他当作常量,只要你每次把它写全;在存储的时候,就是内存空间;赋给一个字符串变量,就是变量的值,所以,这都题从头到尾就没有出现过修改常量的问题。常量只有在C中用#define(不知道拼对没……)来定义,在C++中,可以用const(还是不知道拼得对不,寒自己一个……)来定义,这样的才是常量。而这题说的都跟这两个没有关系,所以只能是上面提到过的内存空间。

正是回答你的问题,我当然认可修改一个指针指向的内存地址的信息,这是合法且经常会用到的,不知道你在用数组的时候有没有过下面类似的应用:
int a[10];
*a=1;
*(a+1)=2;
这难道不是在修改一个指针指向的内容吗?或者咱们再换个例子:
int *a;
a=malloc(20);//这里没用保护,毕竟只是个例子
*a=1;
*(a+1)=2;
这次的例子更直接了吧,你能否认这是在修改指针指向的内存吗?
修改指针的值和修改指针指向的内存当然是两个不同的概念,我只是因为在上面没有跟你讨论指针问题,跟你讨论常量的谈镇问题,所以才写的那个例子,就变量和常量关系的问题,上面循环的那个例子足够了

E. 一个C语言源程序经过编译后就可以执行了 这句话对吗

对的,C语言是先编译后执行,一般只要不出错误,编译完就可以执行力。有时候还要考虑是否跨平台。

F. C语言源程序文件经过编译连接之后生成一个后缀为_____的文件。

如果只生成一个文件,那么这个题目答案是B。编译(compile)后生成目标文件,后缀:.obj。也就是机器码。

然后链接器(Linker) 连接生成可执行文件,后缀:.exe。最后运行命令(go),直接运行.exe文件。

(6)程序在编译通过以后扩展阅读:

简单讲,编译器就是将“一种语言(通常为高级语言)”翻译为“另一种语言(通常为低级语言)”的程序。

一个现代编译器的主要工作流程:源代码(source code) →预处理器(preprocessor) →编译器(compiler) →目标代码(object code) →链接器(Linker) → 可执行程序(executables)

高级计算机语言便于人编写,阅读交流,维护。机器语言是计算机能直接解读、运行的。

编译器将汇编或高级计算机语言源程序(Source program)作为输入,翻译成目标语言(Target language)机器代码的等价程序。

源代码一般为高级语言 (High-level language), 如Pascal、C、C++、Java、汉语编程等或汇编语言。

而目标则是机器语言的目标代码(Object code),有时也称作机器代码(Machine code)。

对于C#、VB等高级语言而言,此时编译器完成的功能是把源码(SourceCode)编译成通用中间语言(MSIL/CIL)的字节码(ByteCode)。

最后运行的时候通过通用语言运行库的转换,编程最终可以被CPU直接计算的机器码(NativeCode)。

G. C语言程序编译后产生哪些类型的文件这些文件的作用是什么

1、以GCC编译器为例,可以分为四步。
第一步是预处理,包括语法检查等工作。
gcc
-P
abc.c
第二步由源程序生产汇编语言代码。
gcc
-S
abc.c
会生成abc.s文件,这个文件里就是汇编代码。
第三步编译器生成目标代码,一个源文件生成一个目标代码。
gcc
-c
abc.c
会生成abc.o
第四步连接器从目标代码生成可执行文件。
gcc
abc.o
2、目标代码包括机器码和符号表(函数及变量名)。连接器的主要作用是通过符号表在库文件和其他模块中找到在目标代码中引入或未定义的符号(函数及变量名),将几个目标代码合成可执行文件。

H. 用高级语言编写的源程序,经编译后产生的是

目标程序。

目标程序,又称为“目的程序”,为源程序经编译可直接被计算机运行的机如岩伏器码集合,在计算机文件上以.obj作扩展名----由语言处理程序(汇编程序,编译程序,解释程序)将源程序处理(汇编,编译,解释)成与之等价的由机器码构成的,计算机能够直接运行的程序,该程序叫目标程序。

目标代码尽管已经是机渣携器指令,但是还不能运行,因为目标程序还没有解决函数调用问题,需要将各个目标程序与库函数连接,才能形成完整的可执行程序。

(8)程序在编译通过以后扩展阅读

计算机并不能直接地接受和执行用高级语言编写的源程序,源程序在输入计算机时,通过"翻译程序"翻译成机器语言形式的目标程序,计算机才能识别和执行。这种"翻译"通常有两种方式,即编译方式和解释方式。

编译方式是指利用事先编好的一个称为编译程序的机器语言程序,作为系统软件存放在计算机内,当用户将高级语言编写的源程序输入计算机后,编译程序便把源程序整个地翻译成用机器枣扮语言表示的与之等价的目标程序。

然后计算机再执行该目标程序,以完成源程序要处理的运算并取得结果。解释方式是指源程序进入计算机后,解释程序边扫描边解释,逐句输入逐句翻译。

计算机一句句执行,并不产生目标程序。如PASCAL、FORTRAN、COBOL等高级语言执行编译方式;BASIC语言则以执行解释方式为主;而PASCAL、C语言是能书写编译程序的高级程序设计语言。

I. java源程序编译过后的文件是什么文件

如果java项目的话编译文件在项目目录下的bin文件夹下如果是web项目编译文件在web目录/WEB-INF/classes/下面只有编译后的代码虚拟机才能执行

J. plc程序编译后,编译的结果会出现在

在输出窗口。plc程序编译后,编译的结果会在输出窗口,PLC编程是一种数字运算操作的电子系统,专为在工业环境下应用而设计。采用敬帆可编程序的存储器,用来在其内部存储执行逻辑运算、顺序控制、定时、计数和算术运算等操作的指令,并通过数字式亮野雹、模拟式的输入脊橘和输出,控制各种类型的机械或生产过程。

阅读全文

与程序在编译通过以后相关的资料

热点内容
java快递接口 浏览:385
哪个app可以教新爸爸 浏览:206
如何查看服务器系统版本信息 浏览:524
成都市土地出让金算法 浏览:702
钢筋加密标记 浏览:575
ps中扩展功能在文件夹的什么位置 浏览:903
双极压缩机为什么要先高压 浏览:527
苹果手机服务器填什么 浏览:832
android移动动画效果 浏览:691
电子和服务器是什么意思 浏览:691
phpurl中文乱码问题 浏览:893
程序员那么可爱大结局陆漓产子 浏览:538
java如何从云服务器读取本地文件 浏览:923
压缩空气软管制作方法 浏览:911
天河三号算法 浏览:924
php队列教程 浏览:632
洪水命令 浏览:529
安卓怎么弄成苹果在线 浏览:435
谷歌web服务器地址 浏览:900
安卓锁屏图片如何删除 浏览:721