社区
Linux/Unix社区
帖子详情
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
打赏
收藏
gcc的简单问题
源码如下: #include struct mystruct { char name; int age; void say(){printf("hello world");} }; int main(void) { mystruct ms=mystruct(); ms.say(); return 0; } gcc 后出现错误,在window下没有问题。 不知道什么原因,请指点下
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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
打赏
举报
回复
解决后加分
最
简单
的基于FFMPEG+SDL的视频播放器-最终版
本程序实现了视频文件的解码和显示(支持HEVC,H.264,MPEG2等)。是最
简单
的FFmpeg视频解码方面的教程。通过学习本例子可以了解FFmpeg的解码流程。 项目包含两个工程: simplest_ffmpeg_player:标准版,FFmpeg学习的开始。 simplest_ffmpeg_player_su:SU(SDL Update)版,加入了
简单
的SDL的Event。 这显示该程序的最终版,除了支持VC2010之外,也支持如下几种编译方式: cl.exe命令行编译; mingw编译;
gcc
编译;
gcc
(MacOS)编译; 此外修复了个别操作系统(例如Ubuntu)中绿屏的
问题
。
Linux安装
gcc
方法(超
简单
安装)
Linux安装
gcc
方法(超
简单
安装) ** 1:Centos版本 ** 终端输入以下命令 yum -y install
gcc
gcc
-c++ autoconf pcre pcre-devel make automake yum -y install wget httpd-tools vim ** 2:Ubuntu版本 ** 终端输入以下命令 sudo apt install
gcc
输入Y开始安装 获取版本信息,检查
gcc
是否安装成功了
gcc
--version 出现版本信息代表安装完成 *
GCC
简单
编译流程
gcc
编译流程
gcc
将hello.c源文件编译成可执行的binary文件需要经过hello.i、hello.s、hello.o、hello四个步骤,如图所示: 1.预处理:展开头文件和宏定义等。
gcc
-E hello.c -o hello.i 2.编译:将预处理得到的源代码转换成汇编文件(得到汇编文件)。
gcc
-S hello.i -o hello.s 3.汇编:将汇编代码转成不可执...
GCC
简单
入门
导语
GCC
是GNU Compiler Collection的缩写,包含
gcc
、g++等编译工具。这个工具不仅包含编译器,还包含其他工具集,例如ar、nm等。今天
简单
的讲一讲这个工具。 简介
GCC
能编译C、C++、Objective-C、Fortran、Java、Ada等语言。
GCC
可以在不同的硬件平台编译,即支持交叉编译。
GCC
的c编译器是
gcc
,其命令格式为 Usage:
gcc
[options] file...
GCC
支持默认拓展名策略,下表是
GCC
下默认文件拓展名的含义。
GCC
常用的编译
gcc
,gfortran和g++的编译原理的
简单
介绍
gcc
,gfortran和g++的和编译原理的
简单
介绍
gcc
,g++的介绍
GCC
:最初的全名:GNU C Compiler.随着
GCC
支持的语言越来越多,它的名称就变成了GNU Compiler Collection。
gcc
是
GCC
中的GUN C Compiler(C 编译器) g++是
GCC
中的GUN C++ Compiler(C++编译器) gfortran是
GCC
中的fortran编译器. 对于 .c和.cpp文件,
gcc
分别当做c和cpp文件编译(cpp的语法规则比c的更强一些) 对于
Linux/Unix社区
23,121
社区成员
74,508
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章