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
6

1 Answer

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

5

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

You Might Also Like