| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2495 人关注过本帖
标题:syntax error : missing ';' before 'type'
只看楼主 加入收藏
b1592187525
Rank: 1
等 级:新手上路
帖 子:86
专家分:4
注 册:2017-2-15
结帖率:90.32%
收藏
已结贴  问题点数:20 回复次数:9 
syntax error : missing ';' before 'type'
程序代码:
#include"stdio.h"
#include"Windows.h"
#include"stdlib.h"
int main(void)
{
    char title[100];
    HWND hwnd;
    GetConsoleTitle(title,100);
    hwnd=FindWindow(NULL,title);
    MoveWindow(hwnd,500,500,300,300,TRUE);
    char *p="hello world";
    system("pause");
    return 0;
}

为何这个程序运行后会出现这个错误?如何修改?
syntax error : missing ';' before 'type'
搜索更多相关主题的帖子: syntax missing before type HWND 
2018-07-24 22:42
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10609
专家分:43210
注 册:2014-5-20
收藏
得分:7 
试运行未见异常,可能是编译器问题。
获取控制台窗口句柄也可以这样:
hwnd = GetConsoleWindow();
2018-07-25 05:06
no1xijin
Rank: 9Rank: 9Rank: 9
来 自:江西
等 级:贵宾
威 望:20
帖 子:211
专家分:1207
注 册:2015-7-8
收藏
得分:7 
问题产生原因:变量定义不在函数的头部,c语言变量定义一般需要定义在头部,c++才可以随用随定义。

解决办法1.将文件名的后缀由.c改为.cpp
解决办法2.将char *p="hello world";放于主函数的首位。

126邮箱联系方式:no1xijin@126. com
2018-07-25 08:57
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9031
专家分:54061
注 册:2011-1-18
收藏
得分:7 
建议使用支持C语言的编译器,比如mingw、clang等等如果一定要用VC,那不要使用VC2013之前的那些不支持C语言的老版本,建议使用VC2017、VC2019等新版本
2018-07-25 10:39
b1592187525
Rank: 1
等 级:新手上路
帖 子:86
专家分:4
注 册:2017-2-15
收藏
得分:0 
以下是引用吹水佬在2018-7-25 05:06:15的发言:

试运行未见异常,可能是编译器问题。
获取控制台窗口句柄也可以这样:
hwnd = GetConsoleWindow();

是改成这样吗?
程序代码:
#include"stdio.h"
#include"Windows.h"
#include"stdlib.h"
int main(void)
{
    HWND hwnd;
    hwnd=GetConsoleWindow();
    MoveWindow(hwnd,500,500,300,300,TRUE);
    char *p="hello world";
    system("pause");
    return 0;
}


[此贴子已经被作者于2018-7-25 21:09编辑过]

2018-07-25 21:07
b1592187525
Rank: 1
等 级:新手上路
帖 子:86
专家分:4
注 册:2017-2-15
收藏
得分:0 
以下是引用no1xijin在2018-7-25 08:57:19的发言:

问题产生原因:变量定义不在函数的头部,c语言变量定义一般需要定义在头部,c++才可以随用随定义。

解决办法1.将文件名的后缀由.c改为.cpp
解决办法2.将char *p="hello world";放于主函数的首位。

放在主函数首位后确实可以运行:
程序代码:
#include"stdio.h"
#include"Windows.h"
#include"stdlib.h"
int main(void)
{
    char *p="hello world";
    char title[100];
    HWND hwnd;
    GetConsoleTitle(title,100);
    hwnd=FindWindow(NULL,title);
    MoveWindow(hwnd,500,500,300,300,TRUE);  
    system("pause");
    return 0;
}
2018-07-25 21:17
b1592187525
Rank: 1
等 级:新手上路
帖 子:86
专家分:4
注 册:2017-2-15
收藏
得分:0 
以下是引用rjsp在2018-7-25 10:39:49的发言:

建议使用支持C语言的编译器,比如mingw、clang等等如果一定要用VC,那不要使用VC2013之前的那些不支持C语言的老版本,建议使用VC2017、VC2019等新版本

之前使用VC6.0与VC2010都出现这个问题,你建议的VC2017与VC2019是分别指visual studio 2017与visual sutdio 2019吗?这两个软件很庞大,下载安装需要较长时间,我现在改用Dev c++后就可以正常编译运行了。
2018-07-25 21:29
no1xijin
Rank: 9Rank: 9Rank: 9
来 自:江西
等 级:贵宾
威 望:20
帖 子:211
专家分:1207
注 册:2015-7-8
收藏
得分:0 
回复 6楼 b1592187525
写c最好是把所有变量都定义在函数首位,这是一个好习惯。不写在首位的话,是c++的习惯。

126邮箱联系方式:no1xijin@126. com
2018-07-26 10:03
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9031
专家分:54061
注 册:2011-1-18
收藏
得分:0 
以下是引用no1xijin在2018-7-26 10:03:58的发言:

这是一个好习惯
然而事实上这是个陋习
上个世纪的C99就建议变量在用时才定义,这样代码可读性变好。
顺便说一下,古老的C99标准之后,有C11标准,以及如今的C17标准
2018-07-26 10:29
no1xijin
Rank: 9Rank: 9Rank: 9
来 自:江西
等 级:贵宾
威 望:20
帖 子:211
专家分:1207
注 册:2015-7-8
收藏
得分:0 
回复 9楼 rjsp
你牛*,怎么不见你创个语言勒。呵呵
还有,不要你回复我!!!!

126邮箱联系方式:no1xijin@126. com
2018-07-26 16:32
快速回复:syntax error : missing ';' before 'type'
数据加载中...
 
   



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

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