Проблема с вычислениями на Arduino

Тема в разделе "Arduino & Shields", создана пользователем Troll, 2 май 2017.

  1. mcureenab

    mcureenab Гуру

    А если так?

    Код (C++):

    float a /= (float)("3.14"); //не будет перечисления - компилятор отматерит при запятой!
     
    Явное приведение типов это не самая светлая сторона C.
     
  2. Igor68

    Igor68 Гуру

    Позвольте... но с какого перепуга в кавычках. Компилятор он конечно не телепат - но и не дибил точно!:mad::mad::mad:. Может Вы не про Си... а какой нибудь питон.
    И вообще фраза (не моя):
    Код (C++):

    float a /= (float)(3.14);
     
    тут параметр a должен быть уже определён... т.к. его надо делить на 3.14
     
  3. mcureenab

    mcureenab Гуру

    С того же перепугу что точка вместо запятой.
     
  4. mcureenab

    mcureenab Гуру

    Чтобы литералу назначить тип, следует использовать не явное преобразование, суффикс


    Код (C++):
    3.14f
     
    Igor68 нравится это.
  5. Igor68

    Igor68 Гуру

    Ну что же можно и так. Спор излишний. Но как пример хороший. Респект!
    (Хотя разницы нет-компилятор для констант это сделает один раз и в программе это никак заметно не будет)
    Только не пугайте так больше... я про кавычки. Впрочем я копировал примеры приведенные... и если попалась запятая (или опечатка когда правил), простите.
     
  6. mcureenab

    mcureenab Гуру

    Из практики программирования я создал для себя список наиболее частых ошибок, которые не ловит компилятор и принял некоторые стандарты программирования, чтобы не попадаться на этом.
    Так использовать фигурные скобки после if, else и циклов, даже если они не нужны.
    Избегать l value слева от ==.