相关疑难解决方法(0)

什么是在C11中有用的匿名结构和联合?

除其他事项外,C11还增加了"匿名结构和联盟".

我四处寻找,但无法找到匿名结构和工会何时有用的明确解释.我问,因为我不完全明白它们是什么.我得知它们之后是没有名字的结构或联合,但我总是(必须?)将其视为一个错误,所以我只能设想一个用于命名结构的用法.

c struct c11

46
推荐指数
5
解决办法
4万
查看次数

用void重载函数

试图用C语言重载C编程语言中的函数_Generic。找到了示例:

这个例子:

#include <stdio.h>
#include <math.h>

void display_float(float dispid) ;
void display_int(int dispid) ;
void display_void(void) ;

#define display(x) _Generic((x), \
          float: display_float, \
          int: display_int,  \
          default: display_float  \
)(x)

void display_void(void){
    printf("display id: 0\n") ;
}

void display_float(float dispid){
   printf("display id: %f\n", dispid) ;
}

void display_int(int dispid){
    printf("display id: %d\n", dispid) ;
}

void main(void){

    display(5) ;
    display(6.5) ;
}
Run Code Online (Sandbox Code Playgroud)

现在,我也想使用来重载该函数display()。意味着该函数将接收a void,调用该函数display_void()并显示0。似乎无法做到这一点。任何帮助,将不胜感激。

编辑1:

另外,请参阅此处的示例。我认为,其中一个示例是传递指向void的指针。可以实施吗?

c

1
推荐指数
1
解决办法
133
查看次数

标签 统计

c ×2

c11 ×1

struct ×1