当前位置: 技术问答>linux和unix
gcc的简单问题
来源: 互联网 发布时间:2016-02-21
本文导语: 源码如下: #include struct mystruct { char name; int age; void say(){printf("hello world");} }; int main(void) { mystruct ms=mystruct(); ms.say(); return 0; } gcc 后出现错误,在window下没有问题。 不知道什么原因,请指点下 ...
源码如下:
#include
struct mystruct
{
char name;
int age;
void say(){printf("hello world");}
};
int main(void)
{
mystruct ms=mystruct();
ms.say();
return 0;
}
gcc 后出现错误,在window下没有问题。
不知道什么原因,请指点下
#include
struct mystruct
{
char name;
int age;
void say(){printf("hello world");}
};
int main(void)
{
mystruct ms=mystruct();
ms.say();
return 0;
}
gcc 后出现错误,在window下没有问题。
不知道什么原因,请指点下
|
非要用C语言实现类似面向对象的操作的话好像只能这么写:
#include
#include
#include
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("%sn",ms.say);
}
int main(void)
{
mystruct ms=mystruct_new();
mystruct_say(ms);
return 0;
}
#include
#include
#include
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("%sn",ms.say);
}
int main(void)
{
mystruct ms=mystruct_new();
mystruct_say(ms);
return 0;
}
|
看你的程序是c++的, gcc只是c语言的编译器.
用g++编译试一下.
用g++编译试一下.
|
g++ main.cpp
g++ -o a.out main.cpp
g++ -o a.out main.cpp