Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

Tags:

c

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
like image 563
Wouter Avatar asked Aug 27 '26 23:08

Wouter


1 Answers

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

like image 165
mame98 Avatar answered Aug 29 '26 19:08

mame98