如何在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作为函数参数传递的主要内容,如果未能解决你的问题,请参考以下文章