标题: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: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册: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
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册: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
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册: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



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-488806-1-1.html




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

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