реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Булевы переменные
Rash
сообщение Oct 21 2005, 14:07
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 639
Регистрация: 5-09-05
Пользователь №: 8 231



Всем здрасте. В 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
Go to the top of the page
 
+Quote Post
G}{OST
сообщение Oct 21 2005, 14:20
Сообщение #2


Участник
*

Группа: Новичок
Сообщений: 48
Регистрация: 6-05-05
Пользователь №: 4 784



Цитата(Rash @ Oct 21 2005, 18:07)
Всем здрасте. В IARe есть булевы переменные типа
Код
bool
false
true

Только в с++. Так что используй следующее:
Код
#ifndef  __cplusplus
#define bool  unsigned char
#define true  1
#define false 0
#endif


--------------------
cul8r!
* #ru_embedded - эмбеддерский чат
Go to the top of the page
 
+Quote Post
Rash
сообщение Oct 21 2005, 14:24
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 639
Регистрация: 5-09-05
Пользователь №: 8 231



спасибо, тогда уж лучше так
typedef unsigned char bool,
но IAR их синим цветом итак выделяет
Go to the top of the page
 
+Quote Post
Rash
сообщение Oct 21 2005, 14:44
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 639
Регистрация: 5-09-05
Пользователь №: 8 231



на строчку
Код
return true;

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

а на false всё в норме
Go to the top of the page
 
+Quote Post
rezident
сообщение Oct 21 2005, 14:58
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



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

Код
return (false);
Go to the top of the page
 
+Quote Post
beer_warrior
сообщение Oct 21 2005, 15:01
Сообщение #6


Профессионал
*****

Группа: Свой
Сообщений: 1 065
Регистрация: 8-10-05
Из: Kiev, UA
Пользователь №: 9 380



Проверь внимательно определение типа и макросы тоже.
ошибка будет в них, а компилятор укажет ошибку в месте использования
:-(


--------------------
Вони шукають те, чого нема,
Щоб довести, що його не існує.
Go to the top of the page
 
+Quote Post
Rash
сообщение Oct 21 2005, 15:12
Сообщение #7


Знающий
****

Группа: Свой
Сообщений: 639
Регистрация: 5-09-05
Пользователь №: 8 231



Всё равно те же проблемы привожу всё
файл 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
Go to the top of the page
 
+Quote Post
Rash
сообщение Oct 21 2005, 15:17
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 639
Регистрация: 5-09-05
Пользователь №: 8 231



забыл, в мой файл.h вставлена строка
Код
#include "type.h"
Go to the top of the page
 
+Quote Post
G}{OST
сообщение Oct 21 2005, 15:35
Сообщение #9


Участник
*

Группа: Новичок
Сообщений: 48
Регистрация: 6-05-05
Пользователь №: 4 784



Во нафлудили-то! Да понятно, что typedef можно вместо #define.

Вообще есть более простой способ - использовать библиотеки DLIB + Embedded C++ smile.gif


--------------------
cul8r!
* #ru_embedded - эмбеддерский чат
Go to the top of the page
 
+Quote Post
Old1
сообщение Oct 21 2005, 19:08
Сообщение #10


Знающий
****

Группа: Свой
Сообщений: 697
Регистрация: 26-07-05
Из: Могилев
Пользователь №: 7 095



Цитата(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…
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Oct 21 2005, 23:16
Сообщение #11


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



Кстати определение TRUE, как 1, ни есть верно. Любая, отличная от нуля величина в языке Си, может означать истину.


--------------------
Выбор.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 14th July 2025 - 09:34
Рейтинг@Mail.ru


Страница сгенерированна за 0.01467 секунд с 7
ELECTRONIX ©2004-2016