如何在EN中将ENUM作为函数参数传递

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在EN中将ENUM作为函数参数传递相关的知识,希望对你有一定的参考价值。

我有一个enum声明为;

typedef enum 
{
   NORMAL = 0,           
   EXTENDED              

}CyclicPrefixType_t;

CyclicPrefixType_t cpType;  

我需要一个以此为参数的函数:

fun (CyclicPrefixType_t cpType) ;  

func声明是:

void fun(CyclicPrefixType_t cpType);

请帮忙。我不认为这是正确的。

谢谢

答案

这几乎就是你如何做到的:

#include <stdio.h>

typedef enum {
    NORMAL = 31414,
    EXTENDED
} CyclicPrefixType_t;

void func (CyclicPrefixType_t x) {
    printf ("%d
", x);
}

int main (void) {
    CyclicPrefixType_t cpType = EXTENDED;
    func (cpType);
    return 0;
}

这将按预期输出EXTENDED(在本例中为31415)的值。

另一答案

以下也有效,FWIW(略有混淆......)

#include <stdio.h>

enum CyclicPrefixType_t {
    NORMAL = 31414,
    EXTENDED
};

void func (enum CyclicPrefixType_t x) {
    printf ("%d
", x);
}

int main (void) {
    enum CyclicPrefixType_t cpType = EXTENDED;
    func (cpType);
    return 0;
}

显然它是一个legacy C thing

以上是关于如何在EN中将ENUM作为函数参数传递的主要内容,如果未能解决你的问题,请参考以下文章

如何在 C# 函数中将 jquery 变量作为参数传递

如何在python中将字典项作为函数参数传递? [复制]

如何在用户定义的函数中将数据库列作为参数传递?

在C代码中将结构体变量作为参数传递效率忒低

如何在类中将函数作为参数传递?

如何在Javascript中将对象作为参数传递