编译时我在标题中声明了以下错误消息,并且不知道错误。我试图将一个结构数组传递给一个函数。失败时出现以下错误:
错误消息错误:在'之前预期的primary-expression,'令牌
gpio.h
#ifndef __GPIO_H__
#define __GPIO_H__
#include <stdint.h>
#include "settings.h"
int open(config *configureGpio, bool *result);
#endif
settings.h
#ifndef __SETTINGS_H__
#define __SETTINGS_H__
#include <stdint.h>
#define OUTPUT 1
#define INPUT 0
#define HIGH 1
#define LOW 0
struct config
{
int nPin;
bool bOut;
bool bIHigh;
};
config gpioConfig[4] =
{
{8, OUTPUT, LOW},
{4, INPUT, LOW},
{3, INPUT, LOW},
{2, INPUT, LOW}
};
#endif
gpio.cpp
#include "gpio.h"
int open(config *configureGpio, bool *res)
{
return 0;
}
的main.cpp
#include "gpio.h"
#include "settings.h"
int main() {
bool res = false;
open(config, &res);
}
答案 0 :(得分:0)
您不能将data-type
作为参数传递,而是传递变量。同样,当传递数组时要小心落入array decaying to pointer
。因此,您应该将大小作为单独的参数传递。
所以你的代码看起来像这样:
int open(config *configureGpio, const int size, bool *res){
for(int i(0); i < size; i++)
;// do something
return 0;
}