Petka 0 16 июня, 2009 Опубликовано 16 июня, 2009 · Жалоба Повторяю вопрос - лично Вы будете воспитывать, следить и так далее, дабы с этим "чудесным" bool работали только &&, ||, =0, =1? Не компилятор? Ну и зачем этот 'bool', который и не bool? Для удобного наступания на грабли? ~ это есть тоже вполне себе логическая :) операция. Поразрядное логическое НЕ. Не перегибайте палку. Компилятор не проследит и за тем, что я могу вызать (NULL) и грОмматические ошибки не отловит. Суть такая: механизм сделать быстро и компактно по памяти есть. Удобен он или нет, это вопрос философский. Хотите что-бы компилятор относился ко всему слишком формально используйте Паскаль. Вы свободны в своём выборе =) Правда изначально топик был про свободу выбора контроллеров... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 1 16 июня, 2009 Опубликовано 16 июня, 2009 · Жалоба Не перегибайте палку. Не пытайтесь наводить тень на плетень. механизм сделать быстро и компактно по памяти есть. Удобен он или нет, это вопрос философский. Нет. Совсем не в этом. Вопрос жестче жестче - "механизма" нет. СОВСЕМ нет. Предлагается чистой воды обманка: #define bool uchar Просто вредная обманка по причине того, что ТОЛЬКО вводит в заблуждие ровным счетом ничего не делая, кроме ОБМАНА. Точка. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sonycman 0 16 июня, 2009 Опубликовано 16 июня, 2009 · Жалоба Просто вредная обманка по причине того, что ТОЛЬКО вводит в заблуждие ровным счетом ничего не делая, кроме ОБМАНА. Точка. Ну а кто ввёл такой bool? Раз он таков - значит, все довольны? Язык же разрабатывают\дорабатывают супер пупер профессионалы типа Страуструпа и пр.? :laughing: Или тут компилерописатели напортачили? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
defunct 0 16 июня, 2009 Опубликовано 16 июня, 2009 · Жалоба Ну а кто ввёл такой bool? Раз он таков - значит, все довольны? Язык же разрабатывают\дорабатывают супер пупер профессионалы типа Страуструпа и пр.? :laughing: В Cи нет типа bool. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 16 июня, 2009 Опубликовано 16 июня, 2009 · Жалоба В Cи нет типа bool. Да вообще-то есть. 6.2.5 Types ... 2 An object declared as type _Bool is large enough to store the values 0 and 1. 7.16 Boolean type and values <stdbool.h> ... 2 The macro bool expands to _Bool. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
defunct 0 16 июня, 2009 Опубликовано 16 июня, 2009 · Жалоба Да вообще-то есть. вообще-то нет. bool(ean) - это удел паскаля, где шаг влево и вправо нельзя сделать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 16 июня, 2009 Опубликовано 16 июня, 2009 · Жалоба вообще-то нет. bool(ean) - это удел паскаля, где шаг влево и вправо нельзя сделать. Если явление не соответствует вашим или паскалевским представлениям, то это отнюдь не значит, что его нет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sonycman 0 16 июня, 2009 Опубликовано 16 июня, 2009 · Жалоба В Cи нет типа bool. В С++ точно есть. Встроенный тип bool. Так стоит ли кого-то винить в кривой его реализации компилятором? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 1 16 июня, 2009 Опубликовано 16 июня, 2009 · Жалоба bool(ean) - это удел паскаля, где шаг влево и вправо нельзя сделать. C99 - десять лет, как уже даже официально закреплено существование _Bool и на усмотрение алиас bool. И, что характерно, работает "без обману" Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rezident 0 16 июня, 2009 Опубликовано 16 июня, 2009 · Жалоба В Cи нет типа bool.В Pure C не было, в C99 появился. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Dir 0 16 июня, 2009 Опубликовано 16 июня, 2009 · Жалоба Вообще, серия Luminary (по крайней мере их младшая линейка) никоим образом не конкурент по потреблению тока. Чипы здорово греются и жрут немеряно. Их привели только в качестве малоногих армов. Может быть отладят техпроцесс или доработают камень когда нибудь... Что значить когда-нибуть? Уже! Полюбуйтесь на один из новых чипов и найдите слабое место ;) http://www.luminarymicro.com/products/lm3s9b95.html А вообще, такое ощущение, что их разрабатывали впопыхах, лишь бы успеть побыстрее выкинуть на рынок... :( Не впопыхах, а по технологии 0,25мкм. И успели, между прочим. Первые выпустили Cortex-M3 на рынок. А то, что продались TI - так Luminary, скорее всего, и создавалась для того, чтобы выгодно продаться. Типичная венчурная фирма типа Cygnal. Не повезло инвесторам. Вряд ли вообще свои бабки отбили. А вот если бы не кризис, то могли бы неплохо заработать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
defunct 0 16 июня, 2009 Опубликовано 16 июня, 2009 · Жалоба И, что характерно, работает "без обману" Это хорошо. А на практике во что он пакуется? В int, в char, или в бит? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 16 июня, 2009 Опубликовано 16 июня, 2009 · Жалоба Это хорошо. А на практике во что он пакуется? В int, в char, или в бит? На практике это оставлено на усмотрение компилятора, думаю, в подавляющем большинстве случаев это будет char. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AHTOXA 15 16 июня, 2009 Опубликовано 16 июня, 2009 · Жалоба C99 - десять лет, как уже даже официально закреплено существование _Bool и на усмотрение алиас bool. И, что характерно, работает "без обману" Хм... main.c: #include <stdio.h> _Bool a = 2; void printbool(void) { printf("bool = %s\r\n", a ? "true" : "false"); } void testbool(void) { printbool(); a = ~a; printbool(); a = ~a; printbool(); a = !a; printbool(); } int main(void) { printf("hello!\r\n"); testbool(); } >gcc -Os -std=c99 -s -Wa,-adhlns=test.lst main.c -o test.exe >test.exe hello! bool = true bool = true bool = true bool = false Без обману, говорите? :-) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 1 17 июня, 2009 Опубликовано 17 июня, 2009 · Жалоба На практике это оставлено на усмотрение компилятора, думаю, в подавляющем большинстве случаев это будет char. Маловероятно - для не восьмибитовиков типичным, скорее будет int. Проверить не нескольких компиляторах легко,но не особо интересно, ибо не для возвращаемых значений не использую вообще никогда. Да и вообще крайне редко - лишние команды по приведению к thru/false особо не окупаются. Без обману, говорите? :-) Тем хуже :(. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться