gcc的简单问题

chenzhou851025 2007-12-14 05:42:54
源码如下:
#include<stdio.h>
struct mystruct
{
char name;
int age;
void say(){printf("hello world");}
};
int main(void)
{
mystruct ms=mystruct();
ms.say();
return 0;
}
gcc 后出现错误,在window下没有问题。
不知道什么原因,请指点下
...全文
85 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
WizardOz 2007-12-18
  • 打赏
  • 举报
回复
mystruct ms=mystruct_new();
C中对象的声明不是都得在语句执行开始之前完成吗?
你这么写是不是不太准确
==================================================================
写的不好,重写一下,一般真正应用好像是这样的:

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

typedef struct mystruct
{
char name;
int age;
char* say;
}mystruct,*pmystruct;

pmystruct mystruct_new()
{
pmystruct tem;
tem=(pmystruct)malloc(sizeof(mystruct));
char str[]="Hello world!";
tem->say=malloc(sizeof(str));
memcpy(tem->say,str,sizeof(str));

return tem;
}

void mystruct_delete(const pmystruct ms)
{
free(ms->say);
free(ms);
}

void mystruct_say(const pmystruct ms)
{
printf("%s\n",ms->say);
}

int main(void)
{
pmystruct ms=mystruct_new();
mystruct_say(ms);
mystruct_delete(ms);

return 0;
}
chenzhou851025 2007-12-16
  • 打赏
  • 举报
回复
mystruct ms=mystruct_new();
C中对象的声明不是都得在语句执行开始之前完成吗?
你这么写是不是不太准确
WizardOz 2007-12-16
  • 打赏
  • 举报
回复
非要用C语言实现类似面向对象的操作的话好像只能这么写:

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

typedef struct mystruct
{
char name;
int age;
char* say;
}mystruct;

struct mystruct mystruct_new()
{
mystruct tem;
char str[]="Hello world!";
tem.say=malloc(sizeof(str));
memcpy(tem.say,str,sizeof(str));

return tem;
}
void mystruct_say(mystruct ms)
{
printf("%s\n",ms.say);
}
int main(void)
{
mystruct ms=mystruct_new();
mystruct_say(ms);

return 0;
}
WizardOz 2007-12-16
  • 打赏
  • 举报
回复
标准C的结构体是不能写函数在里面的。
C++出现了类的概念以后才扩展了结构体的功能.
chenzhou851025 2007-12-16
  • 打赏
  • 举报
回复
Thanks very much
可是为什么说我的程序是C++的呢,如果要写成C该怎么改
linux_is_perfect 2007-12-14
  • 打赏
  • 举报
回复
g++ main.cpp
g++ -o a.out main.cpp
yeetoo 2007-12-14
  • 打赏
  • 举报
回复
看你的程序是c++的, gcc只是c语言的编译器.

用g++编译试一下.
chenzhou851025 2007-12-14
  • 打赏
  • 举报
回复
解决后加分

23,121

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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