Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Булевы переменные
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Rash
Всем здрасте. В IARe есть булевы переменные типа
Код
bool
false
true

Хочу следущее:
Код
bool CP_Status(unsigned char cStatus)
{

 if (cStatus)
   return true;
 else
   return false;
}

но IAR выдаёт, что не определено bool, false, true
Код
Error[Pe020]: identifier "bool" is undefined
G}{OST
Цитата(Rash @ Oct 21 2005, 18:07)
Всем здрасте. В IARe есть булевы переменные типа
Код
bool
false
true

Только в с++. Так что используй следующее:
Код
#ifndef  __cplusplus
#define bool  unsigned char
#define true  1
#define false 0
#endif
Rash
спасибо, тогда уж лучше так
typedef unsigned char bool,
но IAR их синим цветом итак выделяет
Rash
на строчку
Код
return true;

выдаёт
Код
Error[Pe007]: unrecognized token
Error[Pe029]: expected an expression

а на false всё в норме
rezident
Возвращаемое значение является аргументом и заключается в скобки
Код
return (true);

Код
return (false);
beer_warrior
Проверь внимательно определение типа и макросы тоже.
ошибка будет в них, а компилятор укажет ошибку в месте использования
:-(
Rash
Всё равно те же проблемы привожу всё
файл type.h
Код
#ifndef TYPE_H
#define TYPE_H
#define false 0
#define true  1
typedef unsigned char bool;
typedef unsigned char U8;            
#endif


мой файл.h
Код
#ifndef ..._H  
#define ..._H
...
bool CP_Status(U8 cStatus);
#endif


мой файл.с
Код
bool CP_Status(U8 cStatus)
{
 if (!cStatus)
   return (false);

 return (true);
}


Проблема только в return true
Rash
забыл, в мой файл.h вставлена строка
Код
#include "type.h"
G}{OST
Во нафлудили-то! Да понятно, что typedef можно вместо #define.

Вообще есть более простой способ - использовать библиотеки DLIB + Embedded C++ smile.gif
Old1
Цитата(Rash @ Oct 21 2005, 17:07)
Всем здрасте. В IARe есть булевы переменные типа
Код
bool
false
true

Хочу следущее:
Код
bool CP_Status(unsigned char cStatus)
{

 if (cStatus)
   return true;
 else
   return false;
}

но IAR выдаёт, что не определено bool, false, true
Код
Error[Pe020]: identifier "bool" is undefined

*


Читайте внимательно help. Если вы хотите использовать переменные типа bool при работе с С, необходимо подключить файл-заголовок stdbool.h…
haker_fox
Кстати определение TRUE, как 1, ни есть верно. Любая, отличная от нуля величина в языке Си, может означать истину.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.