| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 779 人关注过本帖
标题:system ("pause")这句话在编译的时候为什么无法通过?
只看楼主 加入收藏
ilsoviet1917
Rank: 2
等 级:论坛游民
帖 子:103
专家分:26
注 册:2010-5-11
结帖率:84.21%
收藏
已结贴  问题点数:20 回复次数:8 
system ("pause")这句话在编译的时候为什么无法通过?
程序代码:
#include <stdio.h>
int main (void)
{
    int n = 10;
   

    printf ("Initially, n = %d\n", n);
    for (int n = 1; n < 3; n++)
        printf ("loop 1: n = %d\n", n);
    printf ("After loop 1, n = %d\n", n);
   

    for (int n = 1; n < 3; n++)
    {
        printf ("loop 2 index n = %d\n", n);
        int n = 30;
        printf ("loop 2: n = %d\n", n);
        n++;
    }
    printf ("After loop 2, n = %d\n", n);
    system ("pause");
    return 0;
}
我用 gcc  -std=c99 -o 12_forc99.exe 12_forc99.c出现
12_forc99.c: In function 'main':
12_forc99.c:19:2: warning: implicit declaration of function 'system' [-Wimplicit-function-declaration]
  system ("pause");
  ^
这样的错误提示,把system ("pause");注销后一切正常,这句话有什么问题吗?为什么编译无法通过?
搜索更多相关主题的帖子: system 
2015-11-26 09:48
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:7 
system ("pause"); 这个东东 需要引用啥头文件来着

另:严重不推荐使用这个语句

DO IT YOURSELF !
2015-11-26 10:12
邹阳
Rank: 6Rank: 6
等 级:侠之大者
威 望:4
帖 子:124
专家分:402
注 册:2015-10-8
收藏
得分:7 
#include <stdio.h>
int main (void)
{
    int n = 10;
   

    printf ("Initially, n = %d\n", n);
    for (n = 1; n < 3; n++)
        printf ("loop 1: n = %d\n", n);
    printf ("After loop 1, n = %d\n", n);
   

    for (n = 1; n < 3; n++)
    {
        printf ("loop 2 index n = %d\n", n);
        int n = 30;
        printf ("loop 2: n = %d\n", n);
        n++;
    }
    printf ("After loop 2, n = %d\n", n);
    system ("pause");
    return 0;
}//表示能够成功运行!

I'm a new comer
2015-11-26 10:24
hellovfp
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:禁止访问
威 望:30
帖 子:2976
专家分:7697
注 册:2009-7-21
收藏
得分:7 
#include<stdlib.h>

我们都在路上。。。。。
2015-11-26 10:29
ilsoviet1917
Rank: 2
等 级:论坛游民
帖 子:103
专家分:26
注 册:2010-5-11
收藏
得分:0 
回复 2楼 wp231957
好像不用引用什么特殊的头文件,以前也这么用,也没出过问题。
用system("pause")主要是在windows下,如果没有这个,运行结束以后瞬间窗口就关闭了,看不到就结果。
2015-11-26 10:33
ilsoviet1917
Rank: 2
等 级:论坛游民
帖 子:103
专家分:26
注 册:2010-5-11
收藏
得分:0 
回复 4楼 hellovfp
可以了,谢谢。
但是stdlib里好像都是mallco free之类的东西,和这个程序有什么关系?
2015-11-26 10:40
ilsoviet1917
Rank: 2
等 级:论坛游民
帖 子:103
专家分:26
注 册:2010-5-11
收藏
得分:0 
回复 3楼 邹阳
删了俩for里的int也能运行成功,不过我不太明白里面的道理。
2015-11-26 10:41
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
道理就是 使用哪个库函数  就需要引用相对应的头文件  就需要链接相对应的库 (这一步 大部分库 系统都默认链接了 只有少部分的特殊库才需要单独链接)

DO IT YOURSELF !
2015-11-26 10:47
hellovfp
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:禁止访问
威 望:30
帖 子:2976
专家分:7697
注 册:2009-7-21
收藏
得分:0 
以下是引用ilsoviet1917在2015-11-26 10:41:43的发言:

删了俩for里的int也能运行成功,不过我不太明白里面的道理。


再把for外面的int删除了试试,编译失败。
原for里的不动,for外面的删除了,可以通过编译。新C标准允许这种写法,作用域仅在For语句里生效。

我们都在路上。。。。。
2015-11-26 10:51
快速回复:system ("pause")这句话在编译的时候为什么无法通过?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.027806 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved