Wouter
Wouter

Reputation: 149

error: expected declaration specifiers or '…' before string constant

Does anybody know what is wrong with this piece of code? i can't see to find the issue among the comparable questions.

The code is written in C, and i keep getting this error. I do add -D SET_MIN_TEMP=5 -D Set_MAX_TEMP=30 to the gcc compile line to make sure the ifndefs should be false...

#ifndef CONFIG_H
#define CONFIG_H


#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <stdint.h>

#ifndef RUN_AVG_LENGTH
    #define RUN_AVG_LENGTH 5
#endif

#ifndef SET_MIN_TEMP
    printf("please set SET_MIN_TEMP \n");
#endif

#ifndef SET_MAX_TEMP
    printf("please set SET_MAX_TEMP \n");
#endif

typedef uint16_t sensor_id_t;
typedef uint16_t room_id_t;
typedef double sensor_value_t;
typedef time_t sensor_ts_t;     // UTC timestamp as returned by time() - notice that the size of time_t is different on 32/64 bit machine

typedef struct {
  sensor_id_t id;
  sensor_value_t value;
  sensor_ts_t ts;
} sensor_data_t;

typedef struct {
    sensor_id_t sensor_id;
    room_id_t room_id;
    double running_avg[5];
    sensor_ts_t timestamp;
} sensor_node_t;


#endif // CONFIG_H

Upvotes: 6

Views: 71965

Answers (1)

mame98
mame98

Reputation: 1341

You can not use a function call (printf) outside a function. You should take a look at #error if you want to report errors at compilation...

See here

Upvotes: 18

Related Questions