c语言 struct携带参数问题

c语言 在之前已经定义了结构
例如 struct Movie{
int date;
char name[10];
};
那么在主程序外
struct Movie play(int i){
}
请教一下这个是什么意思 尝试过传入一些东西 但发现似乎无法调用
(在里面加入了printf某个字符串 也无法打印)
然后我以为这个是结构体数组 但发现传入参数 i 后,我也没法对play.date或者
play[i].date或者play(i).date定义
搜结构体函数和一些别的也没能解决我的问题
想知道这个的具体含义 以及该如何调用这个结构
c语言小白 希望大家能解答我的问题或者告诉我哪里能找到相关内容 谢谢大家QAQ

0

1个回答

struct Movie play(int i){
}
这个是定义了函数play,参数为int型的i, 返回类型为结构体struct Movie,功能应该是根据传入的i值,生成一个struct Movie结构体,然后返回

举例:
struct Movie play(int i)
{
static struct Movie stMovie;

        stMovie.date = i;
        strcpy(stMovie.name, "test");

        return (stMovie);

}

2
weixin_43615325
丁俞杰 非常感谢 按你这样的方法好像是可以调用了 但能不能再麻烦问一下 我在这个函数里定义的结构如何在主程序里调用呢
7 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
由浅至深->C语言中struct关键字的经典问题分析
引言:先观其大略再逐步深入,这是笔者的创作初衷也是其学习感悟! 文章向导 * struct出场的原由 * 结构声明、结构变量及初始化 * 结构指针(指向结构的指针) * 结构体与柔性数组(C99新成员) * 结构体对齐问题 * 下一步:引申至链表 正文 一、struct出场的原由 在程序设计中最重要的一个问题就是如何有效地表示数据,而单纯地使用...
三步解决C语言中struct字节对齐问题
直入主题,要判断一个结构体所占的空间大小,大体来说分三步走: 1.先确定实际对齐单位,其由以下三个因素决定 (1)CPU周期 WIN vs qt 默认8字节对齐 Linux 32位 默认4字节对齐,64位默认8字节对齐 (2)结构体最大成员(基本数据类型变量) (3)预编译指令#pragma pack(n)手动设置 n--只能...
结构体struct 的内存对齐问题(c语言)
内存对齐:为了避免移植后,计算机读取数据出错,
C_C语言的enum、struct、union的使用详解
OK今天我们讲解C语言的三个特殊
struct stat结构体中st_mode参数的含义
stat 结构体重 st_mode 参数的含义 关于st_mode参数的定义: 由于在文件系统编程中经常会用到这个结构,网上很多含糊其辞,下面是我在网上搜索的,整理如下,如果可以的话,应该去源码下搜索一下 st_mode 应该是一个32为的整形变量,现在的linux系统只用了其中的前16位(0-15)   第15位:其实这一位只用到了一次:         0170000 (和12-1
C#调用C函数(DLL)传递参数问题
备忘: 1.C函数参数为字符串char*。如果是入参,对应C#中string或StringBuilder;如果是出参对应C#中StringBuider;   2.C函数参数为结构体指针,需在C#中对应定义结构体。如果是入参,C#中可为myfunction(MyStruct mystruct)或myfunction(ref MyStruct mystruct);如果是出参,C#中为
c语言结构体struct相关使用说明
一、关于结构体的声明 1、匿名声明。如: struct { int i,j; }point; 说明: 这段代码的含义是,声明一个无名(anonymous)的结构体,并创建了一个结构体变量point。如果这段声明是放在全局域(在任意函数(比如main函数)外)内,那么point内的变量将被初始化为默认值,换句话说,以这种方式声明结构体变量时就已经为它分配了内存空间。 适用于该结构体
C语言结构中的边界对齐问题
没错,今天2月14,单身狗如我情人节也只能苦逼地撸代码了。不知道大家有没有发现一个奇怪的现象,见图~ 结构test里面包含了1个int型变量和2个char型变量,照理说sizeof( struct test )应该等于它们三个相加的结果6才对,为什么会等于8呢? 事实上,结构成员在内存中的存储并不是想当然地一个紧挨着一个排列下来的,由于提高数据读取速度的要求以及
struct option需注意的一个问题
struct option 有四个参数,当第二个参数的值为2的时候,表示该参数后面可以接参数值,也可以不接。 注意:当接参数值时,参数值必须紧跟在参数后面,而不能有空格! 例如:static struct option opts[] = { {"capture", 2, 0, 'c'} , {"delay", 1, 0, 'd'} } 使用格式是:-d 10                ...
C语言 sizeof(struct)讲解
struct MyStruct  {  double dda1;  char dda;  int type  };  对结构MyStruct采用sizeof会出现什么结果呢?sizeof(MyStruct)为多少呢?也许你 会这样求:  sizeof(MyStruct)=sizeof(double)+sizeof(char)+sizeof(int)=13  但是当在VC中测试
C语言关于可变参数,结构体的深度剖析
1 关于可变参数中的va_start(ap,v), va_arg(ap,t), va_end(ap)三个函数解析。    va_start(ap,v)等价于 char *p = (char *)&format;   i=va_arg(ap,int)等价于i = *((int *)p),p = p + sizeof(int).分两个步骤完成取值,指针移动。va_end(ap)等价于p = (...
实例讲解c语言结构体大小 sizeof(struct A)
约定为32位系统,即char 1字节、short 2字节、int 4字节 该问题总结为两条规律: 1,每个结构体成员的起始地址为该成员大小的整数倍,即int型成员的其实地址只能为0、4、8等 2,结构体的大小为其中最大成员大小的整数倍 #include #include #include #include #include #include #include #inclu
C语言关于结构体做参数传递
水平有限,谈谈自己的看法 首先结构体
C语言结构体中的冒号用法
结构体中的冒号表示位域。 位域出现的原因是由于某些信息的存储表示只需要几个bit位就可以表示而不需要一个完整的字节,同时也是为了节省存储空间和方便处理。 其表示形式为: struct 位域结构名 {     类型说明符  位域名:位域长度 } 例如: struct  bit_struct {     int  bit1:3;     int
C语言中的typedef struct用法
在学习数据结构的时候,我经常遇到typedef struct,刚开始感觉很别扭,查阅资料之后才真真理解了。 先从结构体说起。 1、结构体用法 struct Student{ int age; char s; } 如果要定义一个该结构体变量,就需要:struct Student st1; 有没有觉得很麻烦,我们隐隐约约察觉到,多写一个struct很费劲,因此才有了下面的typedef
C语言结构体(struct)常见定义和使用-struct
一、简介 本文介绍如何在C语言结构体类型的定义与应用。 二、实验平台   1:本文如下实验所用的上位机软件为 VS2010   2:需要本文工程源码或有疑惑,请加群84342712进入群共享下载 三、版权声明 博主:si_zhou_qun_84342712 声明:喝水不忘挖井人,转载请注明出处。 原文地址:http:/
linux 令行参数解析之-struct option
一. struct option : struct option指明了一个“长参数”(即形如--name的参数)名称和性质: struct option { const char *name; //name表示的是长参数名 int has_arg; //has_arg有3个值,no_argument(或者是0),表示该参数后面不跟参数值; // required_argument(或者...
C语言中,struct与union的区别
struct和union是C语言中两种不同的数据结构,两者都是常见的复合结构,其区别主要表现在两方面: 1、联合体中所有成员共用一块地址空间,即联合体只存放了一个被选中的成员,而结构体中所有成员占用空间是累加的,其所有成员都存在,不同成员会存放在不同地址。 在计算一个结构体变量的总长度时,其内存空间大小等于所有成员长度之和(需考虑字节对齐);而在联合体中,所有成员不能同时占用内存空间,它们不能
Linux C函数入参和返回值是结构体时的汇编分析
在C语言程序中,一般不会直接传一个结构体给一个函数,也不会让函数的返回值直接返回一个结构体,这样会拷贝过多影响效率。但是这样也是合法的,有时候也会使用,并且有时候效率也并不会变得太差。 C函数传参:参数少或者传入的结构体小只借助寄存器即可,否则借助栈。 C函数返回值:如果返回一个比较小的结构体,借助寄存器即可,否则依旧借助栈。按调用约定,当返回值是较大的结构体时,会在caller栈里产生一个临...
C语言参数通用缩写表
红色标记为常用缩写. 缩 写 全 称 中文 addr Address 地址 adm Administrator 管理员 app Application 应用程序 arg Argument 主题,幅交
sigqueue函数 进程间通信 信号的发送携带数据
<br />今天只看SIGQUEUE函数:声明:其中有部分<br />http://www.bccn.net/Article/kfyy/vc/jszl/200708/5849.html(编程中国)的摘抄:<br />3、sigqueue()<br /> #include <sys/types.h><br /> #include <signal.h><br /> int sigqueue(pid_t pid, int sig, const union sigval val)<br /> 调用成功返回
C++:struct和union 内存字节对齐问题
struct内存对齐问题1:数据成员对齐规则:结构(struct)(或联合(union))的数据成员,第一个数据成员放在offset为0的地方,以后每个数据成员存储的起始位置要从该成员大小的整数倍开始(比如int在32位机为4字节,则要从4的整数倍地址开始存储。2:结构体作为成员:如果一个结构里有某些结构体成员,则结构体成员要从其内部最大元素大小的整数倍地址开始存储.(struct a里存有stru
关于计算struct结构体占用空间
关于如何计算struct所占用空间的大小: 有人可能觉得不就是把结构体内所有变量所占空间加起来不就可以了吗?其实,这句话只对了一半,所有变量所占空间要加起来没错,但是机器为了更加容易的取出struct里面的数据,会将里面的变量所占空间进行对齐。这是以空间换时间的一种方式。 如何进行对齐呢? 首先,是每个变量的偏移量对齐,每一个变量相对于首地址的位置就是偏移量。例如: struct data
C语言之struct
C数组允许存储同一种数据类型的变量,结构体是C允许用户自定义的数据结构,用来存储多个不同数据类型变量。 结构用于表示一条记录,假设您想要跟踪图书馆中书本的动态,您可能需要跟踪每本书的下列属性: Title Author Subject Book ID 定义结构 为了定义结构,您必须使用 struct 语句。struct 语句定义了一个包含多个成员的新的数据类型,struct 语句的格式...
C语言自定义类型struct
C语言的类型: 内置类型——char,short,int,float,double; 自定义类型——struct结构体,union联合体,enum枚举类型。 C语言允许用户自己建立由不同类型数据组成的组合型的数据结构,它称为结构体。 声明结构体&amp;初始化结构体变量 #include #include #include //对结构体变量初始化 struct Student {
c语言struct定义,声明,赋值总结
  int a;  int b;} A;struct My_StrB{  int a;  int b;}b={1,2};int main(int argc, char *argv[]){  A a={1,2};  return 0;}
C语言再学习 -- 关键字struct(转)
参看:C语言再学习 -- 结构和其他数据形式 参看:c语言中的关键字struct(结构体)的用法
C语言中typedef struct和struct的区别:
  typedef struct CLinkList {     int data;     struct CLinkList *next; }node; 上面的CLinkList是标识符,node是变量类型(相当于(int,char等))。     这语句实际上完成两个操作: 1) 定义一个新的结构类型 struct CLinkList{       int data;     s...
C语言关于结构体大小的问题
C语言结构体若没有特殊定义,大小都是按照结构体中最大的元素为单位来计算的例如 typedef struct _A { int a; char b; }A; A结构体大小为8字节 若想不按照此规则来定义结构体大小,也就是结构体每个元素占用了多大实际结构体占用大小就是元素的总和的话,则需要在结构体前后加上 #pragma pack(push) #pragma pack(1) typ...
C语言入门(15)——结构体与数据抽象
大多数的计算机运算是对现实世界的模拟,如果想用计算机来模拟现实世界需要用到数据抽象的方法。所谓抽象是从实际的人、物、事和概念中抽取所关心的共同特征,,忽略非本质的细节,吧这些特征用各种概念精确的加以描述,从而使这些概念构成某种对现实世界进行描述的模型。下面以数学中的复数为实例,通过结构体讲解数据类型的组合和抽象。至于过程抽象我们已经见过最简单的形式,就是把一组语句用一个函数名封装起来,当作一个整体
C语言学习过程中遇到的一些问题——already define in *.obj
创建一个控制台程序,新建了一个主程序Main.cpp,由于工程所需函数过多,于是创建多个CPP文件,把程序分类放进cpp文件里,然后在Main()函数里用include包含进来。但是文件组建之后出现错误: error LNK2005: "void __cdecl initQueue(struct Queue *)" (?initQueue@@YAXPAUQueue@@@Z) already de
Struct 定义一个全局变量
struct 在VS中
C语言中的struct用法
结构(struct)      结构是由基本数据类型构成的、并用一个标识符来命名的各种变量的组合。  结构中可以使用不同的数据类型。      1. 结构说明和结构变量定义      在Turbo C中, 结构也是一种数据类型, 可以使用结构变量, 因此,  象其它  类型的变量一样, 在使用结构变量时要先对其定义。      定义结构变量的一般格式为:       struct 结...
C语言编译错误:错误:‘->’参数类型无效(有‘int’)
一、编译错误代码: #include int main() { #define offsetof(type, member) ((size_t) &((type *)0->member)) struct test { int a; int b; }; printf("offset of a %d\n", offsetof(str
C语言中的结构变量(Structure Variable)以及Struct、Typedef的用法
关键字:Struct、Typedef运算符:.   (成员运算符)一、初步了解结构体有人说:程序 = 算法+数据结构程序设计中最重要的一个步骤就是选择一个表示数据的好方法。在多数情况下使用简单的变量或数组是远远不够的。C使用结构变量进一步增强了表示数据的能力。关键字 Struct 用于建立结构声明(structure declaration),结构声明是用来描述结构如何组合的主要方法。它把一些我们...
C语言结构体的“继承”
这里说的继承有点像C++里的父类和子类,实际上是结构体类型的强制转换,最近看Linux内核源码时经常接触到这种方法,在这里就当作是一个简单的学习吧。      下面给出一个Demo,很简单,分别定义了一个father结构体和一个son结构体,father结构体里定义了2个整形变量,son结构体里的第一个成员是father结构体类型的变量,son里的另外2个成员也是整形变量,这样,son结构体
关于c语言的一些你不知道的东西 (位,static,struct)加速。
嵌入式系统总是要用户对变量或寄存器进行位操作。给定一个整型变量a,写两段代码,第一个设置a的bit 3,第二个清除a 的bit 3。在以上两个操作中,要保持其它位不变。 对这个问题有三种基本的反应 1)不知道如何下手。该被面者从没做过任何嵌入式系统的工作。 2) 用bit fields。Bit fields是被扔到C语言死角的东西,它保证你的代码在不同编译器之间是不可移植的,同时也保证了的你
C语言union中包含struct 小结
一 #include int main() {          union                 {                         int i;                          struct                                 {
Linux服务器上使用curl发送携带json数据的post请求
curl -H “Content-Type:application/json” -X POST --data ‘{“feeCd”:“CQRF”}’ http://127.0.0.1:8089/trade/calculate
结构体变量类型前面的struct能不能省略
//声明结构体 struct example{ //do sth }; //c语音声明example变量不可以省略struct关键字 struct example Struct1; //c++声明example对象可以省略关键字struct,并且c++里struct和类class基本具有相同的功能,只不过struct里的访问权限默认是public,class默认是private
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 区块链问题 ios视频开发问题