将枚举传递给 C 中的函数?

问题描述 投票:0回答:1

我遇到了一个无法解决的 C 编程问题。我有一个定义枚举的 global.h 头文件:

typedef enum
{
   INIT,
   VALID_DATA,
   INVALID_DATA,
   ETC.
}SYS_STATUS

在一个单独的头文件中,我有以下函数声明:

#ifndef GLOBAL_H
#define GLOBAL_H
#endif

void Set_Lamp(SYS_STATUS);

然后在 lamp.c 文件中的实际函数定义中我有:

#ifndef GLOBAL_H
#define GLOBAL_H
#endif

#include "lamp.h"

void Set_Lamp(SYS_STATUS sysStat)
{

   Do stuff...

}

但是,当我编译时,我收到警告:“警告:函数声明中的参数名称(没有类型)”

和一个错误:“错误:‘sysStat’之前预期有‘)’”

你不能将枚举传递给函数吗?还是我只是做了一些愚蠢的事情?

提前谢谢大家。

我尝试将枚举传递到函数中,但我的编译器(Microchip 的 xc16 通过 MPLabx)抛出错误。

c function enums microchip pic24
1个回答
0
投票

你需要:

枚举.h:

#ifndef EMUMS_H
#define EMUMS_H

typedef enum
{
   INIT,
   VALID_DATA,
   INVALID_DATA,
   ETC.
}SYS_STATUS

#endif

global.h:

#ifndef GLOBAL_H
#define GLOBAL_H

#include "enums.h"

void Set_Lamp(SYS_STATUS);

#endif

在你的源文件中:

#include "global.h"

void Set_Lamp(SYS_STATUS sysStat)
{

   //Do stuff...

}

当然,你可以将枚举直接放在global.h文件中。

旁注:在你的 .h 文件中,守卫不保护任何东西。

© www.soinside.com 2019 - 2024. All rights reserved.