Перейти к содержанию
    

Повторяю вопрос - лично Вы будете воспитывать, следить и так далее, дабы с этим "чудесным" bool работали только &&, ||, =0, =1? Не компилятор? Ну и зачем этот 'bool', который и не bool? Для удобного наступания на грабли?

 

~ это есть тоже вполне себе логическая :) операция. Поразрядное логическое НЕ.

Не перегибайте палку. Компилятор не проследит и за тем, что я могу вызать (NULL) и грОмматические ошибки не отловит.

Суть такая: механизм сделать быстро и компактно по памяти есть. Удобен он или нет, это вопрос философский. Хотите что-бы компилятор относился ко всему слишком формально используйте Паскаль. Вы свободны в своём выборе =) Правда изначально топик был про свободу выбора контроллеров...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не перегибайте палку.

Не пытайтесь наводить тень на плетень.

механизм сделать быстро и компактно по памяти есть. Удобен он или нет, это вопрос философский.

Нет. Совсем не в этом. Вопрос жестче жестче - "механизма" нет. СОВСЕМ нет. Предлагается чистой воды обманка:

#define bool uchar

Просто вредная обманка по причине того, что ТОЛЬКО вводит в заблуждие ровным счетом ничего не делая, кроме ОБМАНА. Точка.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Просто вредная обманка по причине того, что ТОЛЬКО вводит в заблуждие ровным счетом ничего не делая, кроме ОБМАНА. Точка.

Ну а кто ввёл такой bool? Раз он таков - значит, все довольны? Язык же разрабатывают\дорабатывают супер пупер профессионалы типа Страуструпа и пр.? :laughing:

Или тут компилерописатели напортачили?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну а кто ввёл такой bool? Раз он таков - значит, все довольны? Язык же разрабатывают\дорабатывают супер пупер профессионалы типа Страуструпа и пр.? :laughing:

В Cи нет типа bool.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 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.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да вообще-то есть.

вообще-то нет.

bool(ean) - это удел паскаля, где шаг влево и вправо нельзя сделать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

вообще-то нет.

bool(ean) - это удел паскаля, где шаг влево и вправо нельзя сделать.

Если явление не соответствует вашим или паскалевским представлениям, то это отнюдь не значит, что его нет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В Cи нет типа bool.

В С++ точно есть. Встроенный тип bool.

Так стоит ли кого-то винить в кривой его реализации компилятором?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

bool(ean) - это удел паскаля, где шаг влево и вправо нельзя сделать.

C99 - десять лет, как уже даже официально закреплено существование _Bool и на усмотрение алиас bool. И, что характерно, работает "без обману"

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вообще, серия Luminary (по крайней мере их младшая линейка) никоим образом не конкурент по потреблению тока.

Чипы здорово греются и жрут немеряно.

Их привели только в качестве малоногих армов. Может быть отладят техпроцесс или доработают камень когда нибудь...

Что значить когда-нибуть? Уже! Полюбуйтесь на один из новых чипов и найдите слабое место ;)

http://www.luminarymicro.com/products/lm3s9b95.html

 

А вообще, такое ощущение, что их разрабатывали впопыхах, лишь бы успеть побыстрее выкинуть на рынок... :(

Не впопыхах, а по технологии 0,25мкм. И успели, между прочим. Первые выпустили Cortex-M3 на рынок. А то, что продались TI - так Luminary, скорее всего, и создавалась для того, чтобы выгодно продаться. Типичная венчурная фирма типа Cygnal. Не повезло инвесторам. Вряд ли вообще свои бабки отбили. А вот если бы не кризис, то могли бы неплохо заработать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

И, что характерно, работает "без обману"

Это хорошо. А на практике во что он пакуется? В int, в char, или в бит?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это хорошо. А на практике во что он пакуется? В int, в char, или в бит?

На практике это оставлено на усмотрение компилятора, думаю, в подавляющем большинстве случаев это будет char.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

Без обману, говорите? :-)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На практике это оставлено на усмотрение компилятора, думаю, в подавляющем большинстве случаев это будет char.

Маловероятно - для не восьмибитовиков типичным, скорее будет int. Проверить не нескольких компиляторах легко,но не особо интересно, ибо не для возвращаемых значений не использую вообще никогда. Да и вообще крайне редко - лишние команды по приведению к thru/false особо не окупаются.

 

 

 

Без обману, говорите? :-)

Тем хуже :(.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...