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

use*_*777 25 c enums function

我有一个enum声明为;

typedef enum 
{
   NORMAL = 0,           
   EXTENDED              

}CyclicPrefixType_t;

CyclicPrefixType_t cpType;  
Run Code Online (Sandbox Code Playgroud)

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

fun (CyclicPrefixType_t cpType) ;  
Run Code Online (Sandbox Code Playgroud)

func声明是:

void fun(CyclicPrefixType_t cpType);
Run Code Online (Sandbox Code Playgroud)

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

谢谢

pax*_*blo 30

这几乎是正是你怎么做:

#include <stdio.h>

typedef enum {
    NORMAL = 31414,
    EXTENDED
} CyclicPrefixType_t;

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

int main (void) {
    CyclicPrefixType_t cpType = EXTENDED;
    func (cpType);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

这EXTENDED按预期输出(在这种情况下为31415)的值.


rog*_*ack 8

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

#include <stdio.h>

enum CyclicPrefixType_t {
    NORMAL = 31414,
    EXTENDED
};

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

int main (void) {
    enum CyclicPrefixType_t cpType = EXTENDED;
    func (cpType);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

显然这是遗产C的事情.