Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 作为返回值的联合成员_C - Fatal编程技术网

C 作为返回值的联合成员

C 作为返回值的联合成员,c,C,函数能否返回联合的成员 如果是这样,那么我应该如何声明函数的返回类型,以及如何在函数的定义中生成return语句 (事实上,我有一系列关于这一点的问题,但除非前面的回答,否则没有一个问题是有意义的。所以这是第一个问题…没有。工会的成员是一个对象。函数只能返回值 您可以返回一个值,该值是联合成员的值。为此,函数的返回类型就是成员的类型 函数可以返回整个联合(按值)。为此,函数的返回类型为union类型 函数可以返回一些值,告诉调用方联合的哪个成员当前正在使用(例如,0表示第一个成员,1表示第二个成

函数能否返回联合的成员

如果是这样,那么我应该如何声明函数的返回类型,以及如何在函数的定义中生成return语句


(事实上,我有一系列关于这一点的问题,但除非前面的回答,否则没有一个问题是有意义的。所以这是第一个问题…

没有。工会的成员是一个对象。函数只能返回值

您可以返回一个值,该值是联合成员的值。为此,函数的返回类型就是成员的类型

函数可以返回整个联合(按值)。为此,函数的返回类型为union类型

函数可以返回一些值,告诉调用方联合的哪个成员当前正在使用(例如,0表示第一个成员,1表示第二个成员)。为此,函数的返回类型是您选择用于编码信息的某种类型(例如,
int


函数还可以返回指针。它们通常用作对象的代理:由于无法返回实际对象,因此返回指向对象的指针,调用方可以使用指针访问对象。函数可以返回指向联合成员的指针或指向联合的指针。(这可能有问题:指针返回的对象必须是函数返回后继续存在的对象。因此,它不能是在函数内部创建的自动对象。)

否。联合的成员是对象。函数只能返回值

您可以返回一个值,该值是联合成员的值。为此,函数的返回类型就是成员的类型

函数可以返回整个联合(按值)。为此,函数的返回类型为union类型

函数可以返回一些值,告诉调用方联合的哪个成员当前正在使用(例如,0表示第一个成员,1表示第二个成员)。为此,函数的返回类型是您选择用于编码信息的某种类型(例如,
int


函数还可以返回指针。它们通常用作对象的代理:由于无法返回实际对象,因此返回指向对象的指针,调用方可以使用指针访问对象。函数可以返回指向联合成员的指针或指向联合的指针。(这可能有问题:指针返回的对象必须是函数返回后继续存在的对象。因此,它不能是在函数内部创建的自动对象。)

联合的成员只是一个变量,就像结构的成员一样。如果联合成员是int,您返回一个int。很抱歉,现在没有可用的代码。实际上,我想要一个包含两个成员的联合:一个是函数的“正常”返回值,另一个是函数不希望返回的值,如果函数无法执行所需的任务。例如,为变量分配内存,然后函数返回指向该变量的指针,否则返回false。联合的成员只是一个变量,就像结构的成员一样。如果联合成员是int,则返回int。很抱歉,现在没有可用的代码。实际上,我想要一个包含两个成员的联合:一个是函数的“正常”返回值,如果函数未能执行所需的任务,则另一个值将是函数不希望返回的值。例如,为一个变量分配内存,然后函数返回一个指向该变量的指针,否则返回false。我知道了。然后我可以为联合的标记字段使用枚举类型来检查返回类型,对吗?但是,如果我想,例如,一个函数返回“真”值或void(取决于函数的参数),那么有没有办法实现这一点?@user32576424:要让一个函数返回某个值x或无值“void”,您必须有一个能同时表示所有所需值x和“void”的类型(例如,指针可以同时表示指向实际对象的指针和NULL,浮点值可以同时表示数字和NaN[不是数字])。有时这是通过留出一个特殊值来表示“void”来实现的。例如,如果函数从未返回负值以获得正确的结果,-1可以代表“void”@user3257624:如果基本类型对此不满意,那么您可以定义一个包含两个成员的结构,其中一个成员告诉您返回值是否为“void”或者不是,另一个有实际的返回值。我知道了。我可以为联合的标记字段使用枚举类型来检查返回类型,对吗?但是如果我想,例如,函数返回“真”值或void(取决于函数的参数)那么有什么方法可以实现这一点吗?@user32576424:要让函数返回某个值x或无值“void”,您必须有一个可以同时表示所有所需值x和“void”的类型(例如,指针可以同时表示指向实际对象的指针和NULL,浮点值可以同时表示数字和NaN)[不是一个数字]。有时这是通过留出一个特殊值来表示“void”来实现的。例如,如果您的函数从未为正确的结果返回负值,那么-1可以代表“void”@user3257624:如果基本类型对此不满意,则可以定义一个包含两个成员的结构,其中一个成员告诉您返回值是否为“void”,另一个成员具有实际返回值。