优化编译器已停止工作
‘壹’ VS2015调试C++,尽管代码正确但编译器就是会停止工作,这是为什么
VS2015 win7 64位系统
我也遇到过这个问题,当时是代码里有一个语法错误,有一个变量名我没有注意被重定义了,按F7编译就会出现这个问题。应该是VS的C++ 编译器的一个bug。我把代码错误修了之后就没问题了。建议你在程序和功能里面修复一下VS2015 或者直接改用 VS2017。
‘贰’ 为什么运行它 ,编译器直接停止工作了
printf("整数a:");scanf("%d",&a);
printf("整数b:");scanf("%d",&b);
printf("整数c:");scanf("%d",&c);
‘叁’ 如何防止因编译器开启优化,而导致程序执行错误
我的经验是:未优化的c程序可正常运行,优化后不能运行,那一定是我的程序有问题。我还没经历过不是我程序的情况。
发现这种不易发现的问题,需要看汇编码。
避免的方法,我的经验:写c程序,尽量规矩;似是而非的概念,一定要搞清楚,别侥幸。因为侥幸而留的雷,现在不出问题,将来一定会出问题;不优化不出问题,优化就出问题。
最后要说,每个应用程序,都让他开优化运行,只要时间允许,一定要查出开优化后出问题的原因。时间不允许,只能不开优化凑合着,在有时间的时候继续查问题。
‘肆’ C语言编程的时候出现“程序已停止工作”的原因有哪些
最常见的原因:程序发生了空指针调用。
如果你刚入门,请检查:
scanf("%d",&i); 有没有加上“&”号,scanf必须在变量前加“&”(取地址符)。
如果没有加&, scanf会把变量当作地址来用,而你的程序中又没有以变量为地址的变量,操作系统不允许程序读写程序规定范围以外的空间。出于安全起见,操作系统将其紧急中止。就发生了“***.exe已停止工作”的效果。
如果你正在学习数组,请检查:
数组是否越界。定义为int a[10]的数组,如果写a[10]=0; 相当于对a数组里的第11个元素赋值。事实上,a数组里并没有第11个元素。如果该元素的位置指向一个程序以外的内存,操作系统同样会果断将其终止。
如果你正在学习指针,请检查:
指针是否赋值;
在给指针赋值时,有没有在非指针变量前加取地址符“&”;
int * p = &i; //正确!
int * p = i; //错误!
这与在sccanf里没有加上“&”号的原因大致相同。
指针问题属于程序逻辑错误,很多时侯编译器只会给你一个警告。要注意警告发生的位置自己是否有把握。如果你多次编译或忽视编译警告而进行链接,编译器会认为你对这些警告是有把握的,完全地信任了你,也就没有警告了。
‘伍’ Keil C/C++编译器停止工作
看样子,估计是keil软件没注册或破解成功,按照option重新注册一下,或者是卸载了,然后重装并破解吧。
‘陆’ C语言当打表过大时编译器会不会停止工作
“打表过大"是什么意思。
一般编译器是不会停止工作,如果代码中有编译时就可以发现的错误,它会给予提示。
‘柒’ mfc动态链接库包含#include <Afxmt.h>出错高手指导下
方法1.
只一次引用 #pragma once
方法2
#if !defined(__XXXXXXX_H)
#define __XXXXXXX_H
‘捌’ 一运行C语言程序 就提示程序已经停止工作
试试重新建立工程,编译以下空代码的程序:
intmain()
{
}
如果这个空代码编译运行不出问题,说明你的程序在调用scanf或者调用指针时候有内存上的错误出现。(仔细查看代码中的scanf和指针调用时的内存使用错误,也可以把所有用到指针和scanf的地方先屏蔽,找出哪个地方内存分配不对)。
如果这个空代码运行也出问题,说明是你编译器有问题。
‘玖’ 很多易语言编译出的软件都出现已停止工作怎么办
系统问题,编译器问题,下载新的编译器,别用vc6,重新编译一下
‘拾’ codeblocks在运行时已经没有编译错误,但是运行不起来,老是停止工作,编译器显示如下
源文件.c-->通过编译器生成.o(目标文件)-->+通过连接器,调用库函数代码+删注释+外部函数价码--->生成可执行文件.exe;
从这个过程来讲,compiler编译器不知道,即缺失;手动添加就可以了。
如果编译没问题但是一运行就会自动弹出.exe已经停止工作也没显示代码有错误之类我是用CodeBlocks运行的运行结果如下:
Compiling:F:C++11.cpp
Linkingconsoleexecutable:F:C++11.exe
Processterminatedwithstatus0(0minutes,0seconds)
0errors,0warnings
Checkingforexistence:F:C++11.exe
Executing:D:ProgramFilesCodeBlocks/cb_console_runner.exe"F:C++11.exe"(inF:C++1)
Processterminatedwithstatus-1073741819(0minutes,4seconds)