Відповісти

Введіть повідомлення і натисніть Надіслати
Параметри

Назад

Огляд теми (нові повідомленні вгорі)

MikeM
2018-11-07 00:18:01

А если сделать массив глобальным?

Вячеслав Азаров
2018-11-06 14:32:55
Ripper пише:

На PHP и C# эта конструкция работает ... посему и написал по аналогии ...

Как вернуть из функции ОПРОС датчиков значение на 1 датчика а сразу нескольих (массив)

Используйте структуры. Язык С не поддерживает так-же кортежи и замыкания. Это простая стековая машина.

Ripper
2018-11-06 13:21:45

На PHP и C# эта конструкция работает ... посему и написал по аналогии ...

Как вернуть из функции ОПРОС датчиков значение на 1 датчика а сразу нескольих (массив)

Вячеслав Азаров
2018-11-06 07:31:09

В языке С, автоматическое копирование массивов не выполняется. Т.е. вы не можете присвоить один массив другому или вернуть его целиком из функции. Кроме того, ссылка на массив объявленный внутри функции, как автоматический, смысла не имеет, вне её контекста. Непонятно почему компилятор ничего не сказал. Включите расширенный вывод сообщений компилятора и почитайте логи. Возможно, по умолчанию, такая ситуация рассматривается как предупреждение.

Ripper
2018-11-06 03:58:31

Как вернуть массив из Функции как не пробовал на выходе пустота (((

....

float* ReadTemp() {
  float temp1;
  float temp2;
  float temp3;
  float tempavg;
  sensors.begin();
  sensors.setResolution(Thermometer1, TEMPERATURE_PRECISION);
  sensors.setResolution(Thermometer2, TEMPERATURE_PRECISION);
  sensors.requestTemperatures();
  temp1 = sensors.getTempC(Thermometer1) + 1; 
  temp2 = sensors.getTempC(Thermometer2) + 1;
  tempavg = (temp1 + temp2) / 2;
  float tempArray[] = {(int)tempavg, temp1, temp2, temp3};
  return tempArray;
}

float* temperatureArray = ReadTemp();
Serial.println((float)temperatureArray[1]);
Serial.println((float)temperatureArray[2]);
Serial.println((float)temperatureArray[3]);

Підвал форуму