error: 'sensorDHT' does not name a type
-
Hallo,
habe hier ein Stückchen Code, dass von Platformio angemeckert wird und ich verstehe nicht warum:file: varTypen.h
// DHT Sensor typedef struct { uint16_t ID; bool valid; uint16_t modelID; // 999=unknown; ... see array "dhtModel" char name[16]; uint16_t interval; // request interval float lastTemp; float maxTemp; float minTemp; bool alarmActive; float alarmMax; float alarmMin; } dhtSensor_t;
main.cpp
#include "varTypen.h" // DHT-Sensor DHT dht(pinDHTa, DHTTYPE); dhtSensor_t sensorDHT[2]; sensorDHT[0].ID = 0; strcpy(sensorDHT[0].name, "Wohnzimmer");
Die Fehlermeldung:
src\main.cpp:7:1: error: 'sensorDHT' does not name a type sensorDHT[0].ID = 0; ^ src\main.cpp:8:7: error: expected constructor, destructor, or type conversion before '(' token strcpy(sensorDHT[0].name, "Wohnzimmer");
I don't see what's wrong ...
-
@Sven sagte in error: 'sensorDHT' does not name a type:
DHT dht(pinDHTa, DHTTYPE);
Wo ist das her? An dem restlichen Code kann man von hier kein Problem erkennen. Irgendwas in den Headern falsch, z.B. falscher Include-Guard? Oder irgendein anderer Fehler, der hier nicht mehr yu sehen ist.
Mach doch bitte ein reproduzierbares Minimalbeispiel! Deine main.cpp, die du hier zeigst, ist vermutlich nicht die, mit der du kompilierst. Oder hast du den Code etwa nicht innerhalb einer Funktion wie
int main()
stehen? Dann wäre das die Lösung.PS: In C++ würde ich statt
typedef struct { ... } name_t;
hier einfacherstruct name_t { ... };
schreiben.
-
Ist ein Programm für einen esp8266.
Der Fehler tritt außerhalb einer Funktion auf, im "globalen" Bereich - was ist daran anders?#include <Arduino.h> #include <DHT.h> #include "varTypen.h" // DHT-Sensor DHT dht(pinDHTa, DHTTYPE); dhtSensor_t sensorDHT; sensorDHT.ID = 0; strcpy(sensorDHT.name, "Wohnzimmer"); void setup() { byte mac[6]; dht.begin(); } void loop() { uint32_t currentMillis = 0; uint32_t gapMillis = 0; uint16_t loopCounter = 0; uint16_t mqttmaxretry = 5; }
-
@wob sagte in error: 'sensorDHT' does not name a type:
Oder hast du den Code etwa nicht innerhalb einer Funktion wie int main() stehen? Dann wäre das die Lösung.
Danke, das war es ...