【发布时间】:2016-04-13 18:30:44
【问题描述】:
有人知道这段代码有什么问题吗?我无法在可比较的问题中找到问题。
代码是用 C 编写的,我不断收到此错误。我确实将 -D SET_MIN_TEMP=5 -D Set_MAX_TEMP=30 添加到 gcc 编译行以确保 ifndefs 应该是错误的......
#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
【问题讨论】:
-
Set_MAX_TEMP!=SET_MAX_TEMP因为 C 区分大小写。 -
哪一行出现错误?为什么像这样在顶层有
printf()行? -
如果您想在未定义宏时导致编译时错误,请使用
#error。 -
该死的我怎么会错过那个-.-,谢谢兄弟
-
好吧,我之前使用过#warning,但是因为我一直收到错误而改变了它,现在我也知道为什么了......
标签: c