搜索
查看: 1847|回复: 27
打印 上一主题 下一主题

代码错了?

[复制链接]
楼主
发表于 2014-3-11 19:27:00 | 显示全部楼层
system("pause")     后面少了个分号

另外最上面的条件编译不要随便去抄,给别人代码前把危险语句先注释掉
沙发
发表于 2014-3-11 22:35:26 | 显示全部楼层
葛奕成 发表于 2014-3-11 21:51
哪些是危险语句?

那句关机的
这样代码直接交给别人是不合适的
板凳
发表于 2014-3-12 18:54:04 | 显示全部楼层

这段可以编译
不知道你说错是指什么?你要的是什么效果?

#include <windows.h>
#include <unistd.h>
这两个头文件原则上不应该同时包含,不要抄别人代码里你看不懂的部分
但是在ahaC里似乎没有问题

另外再说一遍,贴代码的时候把system("shutdown... ") 注释掉
别人给你试验代码的时候不小心就会被强制关机,就有丢文件的危险
地板
发表于 2014-3-14 21:17:37 | 显示全部楼层
981013 发表于 2014-3-14 20:12
正确的调整平台问题的处理应是这样的(个人认为新手不需要了解这些):

这个不对啊
首先,以单下划线开头的符号,用户不应该随便使用的
然后,getch的声明在conio.h(windows)或ncurses.h或curses.h中,而且还不一定有……
5#
发表于 2014-3-16 22:34:26 | 显示全部楼层
本帖最后由 rosynirvana 于 2014-3-17 17:35 编辑
981013 发表于 2014-3-16 16:38
_WIN32这个宏不是由用户定义的,而是标志win32/64位系统用的
实在不知道别的区别系统的方法
另外,问下 ...

这个要说起来会比较麻烦……
首先,操作系统不定义宏,只有编译环境定义宏
其次,_WIN32这个宏不是ISO C标准中的,编译环境不一定定义了这个宏;如果没定义就要用户手动定义才能起到条件编译的作用了
最后,_WIN32也不是非常通用,有些地方会用WIN32这个宏。而且这个宏的含义是“代码使用了windows API"

所以我觉得要起到条件编译的作用,还不如用WIN32

getch和getchar的区别就大了
getchar是标准库函数,而getch不是(在unix环境下经常需要装ncurses库才可以使用)
getchar从缓冲区读取一个字符,而getch直接读取一个键盘输入
getchar是echoing的函数,键盘输入会显示出来,而getch不会
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表