C超短程序编译出问题:missed prototype

Cixy 2004-08-25 10:22:09
程序如下:

#include <stdlib.h>
#include <stdio.h>
#include <string.h>

int main(int argc, char *argv[])
{
char c[4];
strset (c,'\0');
c[0] = 'C';
printf("%s\n", c);

return 0;
}

编译错误如下:

"test.c", line 8: Error: The function "strset" must have a prototype.
1 Error(s) detected.


注明:偶是用CC(Sun的一个编译器)编译的

哪位大侠说说这个prototype到底是个啥玩意儿,如何解决啊?!

在线等2小时^_^
...全文
263 25 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
Cixy 2004-09-03
  • 打赏
  • 举报
回复
涉及到unix库的问题。。。呵呵,问题已经解决了。。。发分^_^
dreaminger 2004-08-27
  • 打赏
  • 举报
回复
没有看明白,这个有那么复杂么?strset()在那里定义的就把相应的头文件include一下不就得了!?
Cixy 2004-08-26
  • 打赏
  • 举报
回复
加上 #include "unistd.h" ,ok^_^

但是,如何在该环境下翻转字符串呢?我在win环境下用strrev(char* buffer),在unix下不妥……

大侠继续,分照给^_^
Cixy 2004-08-26
  • 打赏
  • 举报
回复
上面就是指偶“老大”了^_^
Cixy 2004-08-26
  • 打赏
  • 举报
回复
好吧,问题调整为这个

read(fileno(file), (void*)buffer, *fileSize);

这句有同样的问题。。。而且上面明确说明要用这个的
  • 打赏
  • 举报
回复
最好不要用strset,我试了,
strset(c,'C');
输出有9个C,说明越界了,还是用memset更可靠
梦想家大魔王 2004-08-26
  • 打赏
  • 举报
回复
strset()是Win32专有的函数,在Unix系统中没有这个函数,而且也不被包含在Ansi C/C++中。
  • 打赏
  • 举报
回复
我在DEV-C中通过了,不过,自己写一个strset也可以了。
Cixy 2004-08-26
  • 打赏
  • 举报
回复
楼上的,小弟眼拙,看不太懂-_|||
liuweihug 2004-08-26
  • 打赏
  • 举报
回复
将字符串s中所有字符设置为ch的值
char *strset(char *s, int ch)
char *c;
Cixy 2004-08-26
  • 打赏
  • 举报
回复
在线关注ing
Cixy 2004-08-26
  • 打赏
  • 举报
回复
一天过去了,仍然无答复。。。大侠。。。你在哪里~
zhangfjj 2004-08-25
  • 打赏
  • 举报
回复
宣言?
哪一个翻译的?
Cixy 2004-08-25
  • 打赏
  • 举报
回复
天仇,偶把c初始化了,还是不行啊。。编译错误依旧。。。

我推测是需要对strset进行事先的声明,就像一般函数,在C里面要先写个声明。。。

Thanks,
konriuen 2004-08-25
  • 打赏
  • 举报
回复
prototype应该是宣言,而strset (c,'\0');并没有被正常初期化,它的值无法预测,最简单的初期化法是让c的先头为0
Cixy 2004-08-25
  • 打赏
  • 举报
回复
好困啊~~~
Cixy 2004-08-25
  • 打赏
  • 举报
回复
或许是把,不过我看参考上说是标准库的。。。我按照例程用了。。。就是这个问题了

关键是不只这个strset有着个问题,还有read()。。。什么的,记不起来了,也都有。。郁闷啊。。。。

期待答案~~~
Cixy 2004-08-25
  • 打赏
  • 举报
回复
另求C和C++标准库的参考资料,我手上有两份,但是不完整,不过仍然愿意和大家分享一下,有兴趣的留下邮箱^_^

我也留下我的邮箱,如果你有文字版的(超星那种扫描的就不必了,又大又不好用),也给我发一份,谢谢

stanfordsag-u@yahoo.com.au
zhangfjj 2004-08-25
  • 打赏
  • 举报
回复
是不是因为strset不是标准函数,在unix上并没有提供此函数。
你打开unix下的CC编译器中带的头文件看看就是了
Cixy 2004-08-25
  • 打赏
  • 举报
回复
忘记说,我用vc的编译器是通过了的。。。但是拖到unix上用CC(巨变态的冬冬~~)编译就是不过。。。lint检测也提示这个问题,它说:

warning: implicit function declaration: strset
加载更多回复(5)

70,020

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧