Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
29.01.2008, 19:48
|
|
Почётный гражданин KAZUS.RU
Регистрация: 06.02.2007
Сообщений: 1,340
Сказал спасибо: 3
Сказали Спасибо 106 раз(а) в 66 сообщении(ях)
|
Дальше - Борланд 6 - та же картина
-- Прилагается рисунок: --
![](https://kazus.ru/nuke/users_images/29012008/3066972.jpg)
|
|
|
|
29.01.2008, 20:32
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
|
Сообщение от urry
|
Берем крайний случай - булевые значения...
|
А кто сказал, что это - крайний случай? Это как раз очень неудачный пример - поскольку в сях булевы значения в чистом виде вообще отсутствуют и заменяются целыми. ![Подмигивание](images/smilies/icon_wink.gif)
Попробуй у борланда или у твоей "родной мамы" попросить присвоить float'у, скажем, строку... и если получится - смело отправляйся к психоаналитику!
P.S. Так, между прочим - ты проверял не в Сях, а в плюсах - а это две ооочень большие разницы. В плюсах возможны любые присвоения... если покажешь компилятору, как это делается. ![Подмигивание](images/smilies/icon_wink.gif)
‹center›
-- Прилагается рисунок: --
[img]nuke/users_images/29012008/6129257.gif[/img]‹/center›
|
|
|
|
29.01.2008, 20:50
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
|
Если кому захочется припасть к первоисточнику:
Brian W. Kernighan, Dennis M. Ritchie - "The C programming language", в главе шестой описаны все разрешенные в сях преобразования типов.
|
|
|
|
29.01.2008, 21:37
|
|
Почётный гражданин KAZUS.RU
Регистрация: 06.02.2007
Сообщений: 1,340
Сказал спасибо: 3
Сказали Спасибо 106 раз(а) в 66 сообщении(ях)
|
это уже казуистика.. с какого перепугу я буду приводить строку к флоат...Клиент хочет узнать - если у него int,short char и что-то такое - в флоат превратится ? ДА
|
|
|
|
29.01.2008, 22:02
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
|
Сообщение от urry
|
Клиент хочет узнать - ...
|
Клиент в сях, мягко говоря, пока не рубит, а тут на сцену выходит бывалый Urry и утверждает, что компилятор перевернет во float всё, что ему ни подсунь... клиент верит бывалому Urry, вместо того, чтобы почитать про преобразование типов, и потом дооолго трахается с многочисленными и "непонятными" ошибками в своих программах.
Сообщение от urry
|
строку к флоат... казуистика
|
Во-первых, не казуистика, а стандарт языка Си, а во-вторых - ты сам попытался (правда, весьма неудачно) рассмотреть крайний случай - вот тебе действительно крайний случай. Хотя, и в "некрайних" случаях бывают свои запреты на преобразование типов. ![Подмигивание](images/smilies/icon_wink.gif) Скажем, не всегда разрешено преобразование из float в int - ты ведь вполне можешь пользоваться таким приведением, не так ли - это же не строка...
|
|
|
|
29.01.2008, 22:25
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Сообщение от tempora
|
Сообщение от kison, day177
|
Откуда float возьмется? ...результат также будет int
... таки откуда взять float?
|
А тебе, kison, и тебе , day177, пора перечитать избранные места из Кернигана-Ричи...
|
Перечитал. Ничего не нашел. Откуда взялся float в выражении приведенном мной выше? Именно в том, в котором сдвиг на 4.
И еще - может не мне перечитать хорошую книгу, а тому у кого в С есть тип "строка"?
|
|
|
|
29.01.2008, 23:05
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
|
Сообщение от kison
|
Перечитал. Ничего не нашел.
|
Плохо читал.
Сообщение от kison
|
может не мне перечитать хорошую книгу...
|
Тебе, тебе - так как именно ты смотришь на определение функции (тип возвращаемого значения - float!!!) и нифига не видишь в этом месте будущего преобразования (в твоем примере - из int) во float... и именно ты, читая объявление переменной - char String[] = "ABCDEFG"; - думаешь, что String - это наименование типа (хотя это имя переменной, а тип, английским по белому, обозначен как char []):
Сообщение от kison
|
у кого в С есть тип "строка"?
|
|
|
|
|
29.01.2008, 23:18
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Сообщение от tempora
|
Сообщение от kison
|
может не мне перечитать хорошую книгу...
|
Тебе, тебе - так как именно ты смотришь на определение функции (тип возвращаемого значения - float!!!) и нифига не видишь в этом месте будущего преобразования (в твоем примере - из int) во float... и именно ты, читая объявление переменной - char String[] = "ABCDEFG"; - думаешь, что String - это наименование типа (хотя это имя переменной):
Сообщение от kison
|
у кого в С есть тип "строка"?
|
|
Посмешило. Пример приведенный мной был взят из поста Day177 от Пн Янв 28, 2008 10:26 am. Там никакого определения функции нет. Однако тип результата получается все равно float. Почему бы не char? Или int? Собственно отсюда и вопрос возник.
Далее -
Сообщение от tempora
|
...попросить присвоить float'у, скажем, строку...
|
Наверно это я придумал. ![Вопрос](images/smilies/icon_question.gif) Я не увидел - "присвоить массив переменной типа float." Там шла речь именно о СТРОКЕ, как о каком-то типе данных. Поэтому вопрос:
Код:
|
uint8_t _tmp;
_tmp = x; |
Корректно ли такое присвоение? ![Смешно](images/smilies/icon_lol.gif)
Хотя я тут подумал ![Улыбка](images/smilies/icon_smile.gif) - я могу "присвоить float'у, скажем, строку". Очень легко
|
|
|
|
29.01.2008, 23:38
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
|
Сообщение от kison
|
Там никакого определения функции нет.
|
Во-первых, определение этой функции здесь есть и даже неоднократно - вся эта ветка попросту нафарширована одним и тем же куском кода из библиотеки, в котором упоминается эта функция (или чукча не читатель, а только писатель?), а во-вторых, знающий С человек, увидев оператор return(...), не станет спрашивать "Откуда float возьмется?" (как на картинке внизу), а посмотрит тип функции, к которой относится этот return(...).
Сообщение от kison
|
Там шла речь именно о СТРОКЕ
|
Именно - не о строковом типе, а о строке.
-- Прилагается рисунок: --
![](https://kazus.ru/nuke/users_images/29012008/2692517.gif)
|
|
|
|
30.01.2008, 00:00
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Сообщение от tempora
|
Именно - не о строковом типе, а о строке.
|
Хорошо. Не вопрос. ![Улыбка](images/smilies/icon_smile.gif) Тогда вот:
Код:
|
float x;
float CTPOKA;
x = CTPOKA; |
Все условия выполнены? Это не о типе... ![Смешно](images/smilies/icon_lol.gif) Есть сомнения? Тогда о типе CTPOKA:
Код:
|
typedef float CTPOKA;
float x;
float y;
x = (CTPOKA)y; |
Вывод - надо учиться правильно излагать свои мысли...
-- Прилагается рисунок: --
![](https://kazus.ru/nuke/users_images/29012008/2692517.gif)
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 23:34.
|
|