当前位置:首页 » 编程软件 » 不使用c99模式编译报错

不使用c99模式编译报错

发布时间: 2023-07-20 19:46:31

① 如何设置用Dev-C++编译C代码,我编译时出错!

dev-c++对c标准很苛刻的
既是缺点又是优点
正确的c99标准的写法是
#include
int
main(void)
{
printf("hello!");
return
0;
}
[warning]
return
type
of
'main'
is
not
`int'
这个就是违背了c99规定了
一般的函数都有返回值,而c99规定main函数必须有返回值,如果不希望返回有意义的数字,就返回0,用来表示这个程序运行无误[如果中途中断了程序的运行就不会执行到return,也就无法返回了]
也就是return
0
return就是函数返回的值
一般的函数有进的信息,也有出的信息
进的信息就是参数,一般的main函数,是void,也就是没有参数
出的信息就是return的值
在这个程序中,是0
一般main函数都会返回0
以表示运行无误
按照你说的一闪而过
原因是这个程序已经运行完了
所以就关闭掉
1、
建议你在生成exe的目录下新建一个txt文档
内容写上cmd
//这是用来使用cmd,也就是命令提示符用的
然后保存,改名为cmd.bat
//一定要改扩展名
然后打开这个bat,输入你生成的文件名
比如那个程序是1.exe
你就输入1.exe
就可以运行了,运行之后虽然程序退出了,但是cmd没有退出,就可以看到程序的信息而不会一闪而过了
2、
建议你在程序末尾加上getchar();
这样在你输入任意一个键之前,程序就不会运行完毕
自然就不会关闭掉
3、还可以在末尾加上system("pause");
这样就调用了windows的pause指令,就可以暂停下来

② gcc 函数引用参数报错(C语言)

函数参数用&i是C++的引用格式,C是不支持这个的。在VC++下面这么些无所谓,那个本身模糊了C和C++的区别。不过GCC就不一样了,只支持C的语法,不支持C++,你这么写当然会报错。

warning: return makes integer from pointer without a cast应该是你函数里的问题,返还的是一个指针,但定义的时候是整数。虽然不会有错,还是会有警告。检查一下这是不是你的本意,是的话就要用强制转换把指针变成整数,那样就不会报错。

③ 为什么我每次编译C语言时,都会发生这样的错误

这个可能是你编程用的软件没有装好,一般是路径安装问题。你用的是不是vc++6.0?是的话,下面有些解决方法你可以试试。
关于vc++6.0软件编程时出现“Error spawning cl.exe”“ cannot open file "Debug/sad.exe"(其中sad是文件名)”和“计算机丢失mspdb60.ll”等类似问题时;
主要可能存在以下问题1.以前安装过vc++6.0,但是卸载不彻底,或者重装系统后,原来安装软件不能正常使用。解决方法:卸载原软件。
2,vc++6.0与windowxpsp3兼容,在window7下计算机会提示软件不兼容,这时不用修改成兼容模式,否者就不能使用了,直接安装就可以了,不用考虑兼容性问题,
还用如果是从网上下载的软件,安装时的注册码一般输入111-111111就行。另外,下载的破解版软件可能被杀毒软件截获,安装前最好先关闭杀毒软件,然后按提示进行安装。
3.在排除前两个问题的前提下,出现上述问题时,很可能的问题是软件中的设置出现错误。可以按下述方法进行调试即可:
打开vc界面 点击VC“TOOLS(工具)”—>“Option(选择)” —>“Directories(目录)”重新设置“Excutable Fils、Include Files、 Library Files、Source Files”
的路径。很多情况可能就一个盘符的不同 (例如你的VC装在C,但是这些路径全部在D),改过来就OK了如果你装在其他盘里,则仿照其路径变通就行(我就是装在D盘)。
关键是microsoft visual studio\ 后面的东西要相同。 如果你是按照初始路径安装vc6.0的,路径应为:
executatble files:
C:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin
C:\Program Files\Microsoft Visual Studio\VC98\BIN
C:\Program Files\Microsoft Visual Studio\Common\TOOLS
C:\Program Files\Microsoft Visual Studio\Common\TOOLS\WINNT

include files:
C:\Program Files\Microsoft Visual Studio\VC98\INCLUDE
C:\Program Files\Microsoft Visual Studio\VC98\MFC\INCLUDE
C:\Program Files\Microsoft Visual Studio\VC98\ATL\INCLUDE

library files:
C:\Program Files\Microsoft Visual Studio\VC98\LIB
C:\Program Files\Microsoft Visual Studio\VC98\MFC\LIB

source files:
C:\Program Files\Microsoft Visual Studio\VC98\MFC\SRC
C:\Program Files\Microsoft Visual Studio\VC98\MFC\INCLUDE
C:\Program Files\Microsoft Visual Studio\VC98\ATL\INCLUDE
C:\Program Files\Microsoft Visual Studio\VC98\CRT\SRC
更改完成后,关闭软件,重新打开,再进行编程。
4,如果按第三步操作后,编程时仍然提示错误,就在建立工程时,将存储路径改为你自己建立的文件夹(随便在那个盘建一个都行,只要自己能找到就行),
以避免编译时文件不能打开的问题。
5,经过以上四步调试,一般情况下就可以使用了,如果还不能使用的话,可以尝试一下三种方法。
一,卸掉现有版本,更换版本重新安装,然后再按以上步骤进行调试。
二,直接将别人计算机中安装好的软件从安装盘中复制的自己的电脑上,(这样做有时也要按第三步和第四步进行调整,),找出文件中的图标即可运行。
三,最后一个办法,重装系统,系统重装后,一定要先装vc++再装补丁,不然的话还可能错误。

④ C语言编译报错

#include <stdio.h>
#include <string.h>
int main()
{

int gg(int i);
int i;
while(1){
i=0;
printf(" 1.查看历史日程表\n");
printf(" 2.输入新的日程表\n");
printf(" 3.查看已完成的日程表\n");
printf(" 4.查看未完成的日程表\n");
printf(" 5.退出登录\n");
printf(" 请选择相应序号: ");
scanf("%d",&i);
if(i==5){
break;
}
gg(i);
printf("\n");
printf("\n");
printf("\n");
}
}
int gg(int i){
int aa();
int bb();
int cc();
int dd();

switch(i){
case 1:
aa();break;
case 2:
bb();break;
case 3:
cc();break;
case 4:
dd();break;
}
}
int aa(){
FILE*fp;
int length=1000;
char str[1001];
if((fp=fopen("11s.txt","r"))==NULL){
printf("无文件");
return 0;
}
while(fgets(str,length,fp)!=NULL){
printf("%s",str);}
return 1;

fclose(fp);
}
int bb(){
FILE*fp;
char str[400];
printf("内容如下:\n");
scanf("%s",str);
if((fp=fopen("11s.txt","a+"))==NULL){
printf("文件不存在");
return 0;
}

fputs("\n",fp);
fputs(str,fp);
printf("加入成功");
fclose(fp);
return 1;
}
int cc(){
FILE*fp;
int length=1000;
char str[1001];
printf("内容如下:\n");
if((fp=fopen("11s.txt","r"))==NULL){
printf("无文件");
return 0;
}
while(fgets(str,length,fp)!=NULL){
if(strstr(str,"已完成")!=NULL){
printf("%s",str);
}
}
fclose(fp);
return 1;
}
int dd(){
FILE*fp;
int lenght=1000;
char str[1001];
printf("内容如下:\n");
if((fp=fopen("11s.txt","r"))==NULL){
printf("无文件");
return 0;
}
while(fgets(str,lenght,fp)!=NULL){
if(strstr(str,"未完成")!=NULL){
printf("%s",str);
}
}
fclose(fp);
return 1;
}

⑤ C语言:下面的代码为什么会出现编译错误应当怎么改正

错误出在a=sum;这一句——因为构成C语言程序的基本单位是函数而不是C语句,这里的a=sum;不在任何函数中,所以编译器无法处理而出错。把它放到主函数中的printf("%d ",a(3,5));之前就可以了。函数外只能进行全局变量定义或声明,而不能进行其他操作,所以把int (*a)(int, int); a=sum;两句改成int (*a)(int, int)=sum;,让它成为声明变量a并初始化为sum也是可以的。你可以试试。

代码文本:

#include "stdio.h"

int sum(int a, int b);

int (*a)(int, int);

int main(int argc,char *argv[]){

a=sum;

printf("%d ",a(3,5));

return 0;

}

int sum(int a,int b){

return a+b;

}

⑥ C语言里程序编译无误但运行会弹出程序已停止运行是为什么

造成程序停止运行弹框出错的可能原因如下:

  1. 内存溢出

    内存溢出(out of memory)通俗理解就是内存不够,程序所需要的内存远远超出了主机内安装的内存所承受大小,就叫内存溢出。系统会提示内存溢出,有时候会自动关闭软件,重启电脑或者软件后释放掉一部分内存又可以正常运行该软件

    造成内存溢出的原因可能有:

    1>栈区溢出,例如在main函数内开辟的数组空间过大,一般机器的栈区限制在8MB左右,如果开辟的数组大小超过限制,程序就会崩溃。通常的解决方法是申请堆内存,即将较大的数组作为全局变量开在main函数之外。

    2>错误地址访问,常见的非法访问包括指针漂移,数组越界等,初学者也经常出现类似scanf函数没加区地址符号&的情况导致在读取变量的时候因非法访问造成的溢出。

    3>数据类型不符,问题和第二个类似,例如在声明变量时声明为int在输出变量时却用了%lld,就会造成因数据类型不符而导致的溢出。

  2. 编译器错误

    部分编译器由于所使用的标准不同(例如在一台机器上使用的可能是C99标准,而另一台机器上使用的是C11标准),或是因为编译器链接库的损坏,在少数情况下也可能导致程序出现不限于崩溃退出的异常错误,通常解决方法是到编译器官方网站下载最新版的IDE安装。


热点内容
shell写脚本文件 发布:2025-02-06 13:47:32 浏览:228
健身器材脚本 发布:2025-02-06 13:46:36 浏览:853
怎么从手机里卸载存储卡 发布:2025-02-06 13:35:04 浏览:641
诛仙青云志2ftp 发布:2025-02-06 13:34:48 浏览:31
mill91编程 发布:2025-02-06 13:10:27 浏览:291
华为平板怎么储存服务器文件 发布:2025-02-06 12:49:21 浏览:481
php查询结果数组 发布:2025-02-06 12:31:05 浏览:716
怎样把照片压缩打包 发布:2025-02-06 12:15:19 浏览:498
如何编译java文件 发布:2025-02-06 12:05:58 浏览:237
九九乘法编程 发布:2025-02-06 12:05:05 浏览:519