Логический тип данных в c: Логический тип в C++

С, где С-код управляющего символа. Значение С должно быть на 64 больше самого кода управляющего символа.

Var

a: Char

применимы все операции отношения, а так же 2 функции преобразования: ord(c) – определяет порядковый номер с без пробелов; ord(k) – определяет по порядковому номеру k целочисленного значения (сам символ).

К аргументам символьного типа применяются функции, которые определяют предыдущий и последующие символы: Pred(c), Succ(c). Для литер из интервала ‘a’…’z’ применима функция UpCase(c), которые переводят литеры в верхний регистр.

Строковый тип

Данные этого типа предназначены для обработки строк символов, обозначается String, количество символов в строке может меняться от 0 до n, при указании конкретной длины строки это значение записывается в квадратных скобках [20]. По умолчанию — 255.

Const

name=’Anna’;

Var

name: strring [20]

Перечисляемый тип

Данный тип представляет собой ограниченную последовательность скалярных констант.

Значение каждой константы задается ее именем. Имена отдельных констант разделяются запятыми, а вся последовательность заключается в круглые скобки. Программист сам в праве определять тип по каким либо признакам.

Данный тип задается ключевым словом Type

Type=Rainbow(Red, Orange, Yellow, Green, Blue, Violet)

К данным этого типа могут быть применены операции отношения, а так же стандартные функции Pred, Succ, Or.

Переменная задается:

Var

Section: Traffic-light

Line: Rainbow

Интервальный тип данных

Отрезок любого порядкового типа может быть определен как интервальный минимальным и максимальным значением. В качестве констант могуть быть использованы константы, принадлежащие к целому, логическому, строковому или перечисляемому типам. Минимальное, максимальное значения называются нижними и верхними границами отрезка. Задается с помощью Type <имя типа> =<min…….max>;

Type God=1…12;

Над переменными, относящимися к интервальному типу могут выполняться все операции и применяться все стандартные функции, которые допустимы для соответствующего базового типа. Скалярный тип, на котором строится отрезок, называется базовым типом.

Выражения

Всегда состоит из операндов, знаков операций и круглых скобок и задает порядок выполнения определенных действий с данными.

Операнды – константы, переменные и числовые значения.

(X+Y-5) – X, Y, 5 -операнды

Операции – определяют действия которые нужно выполнить над операндами.

Порядок вычисления выражения определяется старшинством (приоритетом) содержащихся в нем операций:

1)   унарная операция not, унарный -, взятие адреса @

2)  * / div mod and she shr

3)  + — or xor

4)  = <> >< >= =< in

Для изменения хода изменения выражения применяются круглые скобки.

Арифметические выражения

Оперируют с целыми и вещественными операндами порождая численный результат. К ним относятся сложение, вычитание, умножение и деление, а так же целочисленное деление DIV и деление по модулю MOD.

Выражения отношения

Сравнение 2-х операндов и определяет истинность или ложность.

Операция

Название

Выражение

Результат

=

Равно

A=B

True, если A=B

<> 

Неравно

A<>B

True, если А<>B

Больше

A>B

True если A>B

Меньше

A<B

=<

Меньше или равно

>=

Больше или равно

Битовая арифметика (поразрядная)

Используется для обеспечения работы с двоичными разрядами или битами.

Операции применимы только к целым типам

Первая группа операций – логические операции: not, and, or, xor. Операция not меняет каждый бит целого на обратный.

Операции and, or, xor выполняются над операндами одинаковой длины попарно.

Вторая группа операций – операции сдвига влево  операции сдвига вправо: SHR и SHL

При этом биты уходящие за пределы разрядной сетки теряются, а освободившиеся заполняются нулями.

СТРУКТУРА ПРОГРАММЫ TURBO PASCAL

Program <имя программы>

Заголовок программы

Uses <имя, имя…>

Используемые модули.

Label (метка1, метка2…)

Раздел описания меток

Const

Константа

Type <имя типа>=<определение типа>

Раздел описания типов

Var <имя, имя…>:тип;

Раздел писания переменных

Раздел описания функций и процедур

Begin <операторы>; End.

Тело программы

Write(ln)

МЭЙЛ ФОМИНА: [email protected]

Типы данных — Основы языка

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

Подобно тому, как обычные объекты имеют типы характеристик цвета (красный, синий, жёлтый, зелёный), вкуса (горький, кислый, сладкий), количества (полтора, два, семь), в языке программирования MQL4 данные различаются по типу. Говоря о типе данных, мы будем иметь в виду тип значения константы, переменной и значения, возвращаемого функцией (понятие функции рассматривается в разделе Функции).

В языке MQL4 различают следующие типы (констант, переменных и значений, возвращаемых функциями):

  • int — целые числа.
  • double — действительные числа.
  • bool — значения логического типа.
  • string — значения строкового типа.
  • color — значения цветового типа.
  • datetime — значение даты и времени.

Тип int

Значения типа int — это целые числа. К этому типу относятся значения, которые являются целыми по своей сути. Примерами целых чисел могут служить: количество баров в окне финансового инструмента (16000 баров), количество открытых и отложенных ордеров (3 ордера), дистанция в пунктах от текущего курса финансового инструмента до цены открытия ордера (15 пунктов). Количество таких объектов, как события, также бывают только целыми. Например, количество попыток открыть ордер не может быть равным полутора, а только одной, двум, трём и т.д.

Различают 2 вида целых значений:

  • Десятичные значения могут состоять из цифр 0 — 9 и быть положительными или отрицательными: 10, 11, 12, 1, 5, -379, 25, -12345, -1, 2.
  • Шестнадцатеричные значения могут состоять из букв латинского алфавита от A до F или от a до f, цифр от 0 до 9, обязательно должны начинаться с 0x или 0X и принимать положительные и отрицательные значения: 0x1a7b, 0xff340, 0xAC3 0X2DF23, 0X13AAB, 0X1.

Значения типа int должны находиться в диапазоне чисел от -2 147 483 648 до 2 147 483 647. Если значение константы или переменной находится за пределами указанного диапазона, то результат работы программы будет не определён. В памяти компьютера значения констант и переменных типа int занимают 4 байта.

Пример использования в программе переменной типа int:

   int Art  = 10;                         // Пример целой переменной 
int B_27 = -1; // Пример целой переменной
int Num = 21; // Пример целой переменной
int Max = 2147483647; // Пример целой переменной
int Min = -2147483648; // Пример целой переменной

Тип double

Значения типа double — это действительные числа, содержащие дробную часть.

Примером значений этого типа являются любые величины, значение которых может иметь дробную часть: угол наклона линии поддержки, цена финансового инструмента, среднее количество ордеров, открываемых в течение дня.

Иногда при составлении программ могут возникнуть трудности с определением типа переменной, т.е программисту бывает не сразу понятно, к какому типу (int или double) относится переменная. Рассмотрим небольшой пример:

Программа открыла в течение недели 12 ордеров. Какого типа должна быть переменная А, учитывающая среднее количество ордеров, открываемых этой программой в день? Очевидно, что ответ: A = 12 ордеров / 5 дней. То есть, переменная А = 2.4 должна учитываться в программе, как double, т.к. у этого значения есть дробная часть. А какого типа должна быть эта же переменная А в случае, если общее количество открытых за неделю ордеров составляет 10? Казалось бы, что если 2 (10 ордеров / 5 дней = 2) не имеет дробной части, то переменная А может учитываться как int. Однако это рассуждение ошибочно. Текущее значение некоторой переменной может иметь дробную часть, состоящую из одних нулей. Но важно то, что значение этой переменной является действительным по своей сути. В этом случае переменная А также должна иметь тип double, и при записи константы в программе обязательно отображается разделяющая точка: А = 2.0

Значения действительных констант и переменных состоят из целой части, десятичной точки (.) и дробной части. Они могут принимать положительные и отрицательные значения. Целая и дробная части составляются из цифр 0 — 9. Количество значащих цифр после десятичной точки может достигать 15. Например:

27.12 -1.0 2.5001 -765456.0 198732.07 0.123456789012345

Интервал значений типа double находится в пределах от -1.7 * e-308 до 1.7 * e308. В памяти компьютера значения констант и переменных типа double занимают 8 байт.

Пример использования в программе переменной типа double:

   double Art     = 10.123;                 // Пример действительной переменной 
double B_27 = -1. 0; // Пример действительной переменной
double Num = 0.5; // Пример действительной переменной
double MMM = -12.07; // Пример действительной переменной
double Price_1 = 1.2756; // Пример действительной переменной

Тип bool

Значения типа bool — это значения логического типа, содержанием которых являются ложь и истина.

Для того чтобы лучше усвоить смысл понятия логический тип, рассмотрим небольшой пример из обыденной жизни. Предположим, что у учителя возникла необходимость вести учёт наличия учебников у учеников. В этом случае учитель составит на листе бумаги список учеников и справа в строке будет делать пометки о том, есть у ученика учебник или нет. Например, он может ставить галочку и прочерк:

Список учеников Учебник физики Учебник биологии Учебник химии
1 Иванов V
2 Петров V V
3 Сидоров V V
. ..
25 Миронов V V V

Значения в правых столбцах будут принимать только 2 возможных значения: верно или неверно. Эти значения нельзя отнести к ранее рассмотренным типам данных, поскольку они не являются числами. Они также не являются значениями цвета, вкуса, количества и т.д. Тем не менее, они несут важную смысловую нагрузку. В языке MQL4 подобные значения называют логическими. Характеристикой констант и переменных типа bool является то, что они могут принимать лишь 2 возможных значения — истина (true, True, TRUE, 1) или ложь (false, False, FALSE, 0). В памяти компьютера значения констант и переменных типа bool занимают 4 байта.

Пример использования в программе переменной типа bool:

   bool aa    = True;           // Логическая переменная аа    имеет значение истина
bool B17 = TRUE; // Логическая переменная B17 имеет значение истина
bool Hamma = 1; // Логическая переменная Hamma имеет значение истина

bool Asd = False; // Логическая переменная Asd имеет значение ложь
bool Nol = FALSE; // Логическая переменная Nol имеет значение ложь
bool Prim = 0; // Логическая переменная Prim имеет значение ложь


Тип string

Значение типа string — это значение строкового типа, представляющее собой набор символов кода ASCII.

В обычной жизни аналогичное содержание имеют названия, например, магазинов, марок автомобилей и пр. Значение строкового типа записывается в виде набора символов, заключённого в двойные кавычки (не путать двойные кавычки с двумя одинарными!). Кавычки используются только для того, чтобы обозначить начало и окончание значения строковой константы, а собственно значением является совокупность символов, обрамлённая кавычками.

Если необходимо ввести в строку двойную кавычку «, то перед ней надо поставить символ обратной косой черты: \. В строку могут быть введены любые специальные символьные константы, перед которыми стоит символ обратной косой черты \. Длина строковой константы — от 0 до 255 символов. Если длина строковой константы превосходит максимальную, лишние символы справа отбрасываются, и компилятор выдаёт соответствующее предупреждение. Сочетание из двух символов, первый из которых – обратная косая черта \, обычно является общепринятым и воспринимается большинством программ как указание на выполнение определённого форматирования текста. В тексте это сочетание не отображается. Например, сочетание \n указывает на необходимость переноса строки, \t указывает на табуляцию и т.д.

Значение строкового типа записывается в виде набора символов, заключённого в двойные кавычки: «MetaTrader 4″, » Stop Loss», «Ssssstop_Loss», «stoploss», «10 pips». Собственно строковым значением является набор символов, находящийся внутри кавычек. Кавычки используются лишь для обозначения границ значения. Внутреннее представление — структура размером в 8 байт.

Пример использования в программе переменной типа string:

   string Prefix    = "MetaTrader 4";                 // Пример строковой переменной
string Postfix = "_of_my_progr. OK"; // Пример строковой переменной
string Name_Mass = "History"; // Пример строковой переменной
string text ="Верхняя строка\nНижняя строка"; // текст содержит символы перевода строки

Тип color

Значение типа color — это значение цветового типа.

Всем хорошо известно, что значит цвет: синий, красный, белый, желтый, зелёный. Нетрудно представить, что означает переменная или константа цветового типа. Это такая константа или переменная, значением которой является цвет. Это может показаться несколько непривычным, но в сущности – очень просто. Подобно тому, как значением целой константы является число, значением цветовой константы является цвет.

Значения цветовых констант и переменных могут быть представлены одним из трёх видов:

  • Литералы

    Значение цветового типа в виде литерала состоит из трёх частей, представляющих собой числовые значения интенсивности трех основных компонент цвета: красного, зеленого и синего. Значение такого вида начинается с символа C и обрамляется одинарными кавычками.

    Числовые значения интенсивности компоненты цвета лежат в диапазоне от 0 до 255 и могут записываться как в десятичном, так и в шестнадцатеричном виде.

    Примеры: C’128,128,128′ (серый), C’0x00,0x00,0xFF’ (синий), C’0xFF,0x33,0x00′ (красный).

  • Целочисленное представление

    Целочисленное представление записывается в виде шестнадцатеричного или десятичного числа. Шестнадцатеричное число имеет вид 0xRRGGBB, где RR — значение интенсивности красной компоненты цвета, GG — зелёной, а BB — синей. Десятичные константы не имеют прямого отражения в RGB. Они представляют собой десятичное значение шестнадцатеричного целочисленного представления.

    Представление значений цветового типа в целочисленном виде и в виде шестнадцатеричных литералов очень удобно. Большинство современных текстовых и графических редакторов представляют информацию о содержании красной, синей и зелёной составляющих в выбранном значении цвета. Достаточно подобрать в редакторе нужный цвет и переписать выявленные таким образом числа в соответствующее представление значения цвета.

    Примеры: 0xFFFFFF (белый), 0x008000 (зеленый), 16777215 (белый), 32768 (зеленый).


    Рис. 11. В современных редакторах можно взять параметры цвета для литерального и целочисленного представления цветового значения константы.

  • Названия цветов

    Самым простым способом задания цвета является указание его названия в соответствии с таблицей Web-цветов. В этом случае значение цвета представляется словом, поставленным в соответствие цвету, например, Red — красный.

    Black DarkGreen DarkSlateGray Olive Green Teal Navy Purple
    Maroon Indigo MidnightBlue DarkBlue DarkOliveGreen SaddleBrown ForestGreen OliveDrab
    SeaGreen DarkGoldenrod DarkSlateBlue Sienna MediumBlue Brown DarkTurquoise DimGray
    LightSeaGreen DarkViolet FireBrick MediumVioletRed MediumSeaGreen Chocolate Crimson SteelBlue
    Goldenrod MediumSpringGreen LawnGreen CadetBlue DarkOrchid YellowGreen LimeGreen OrangeRed
    DarkOrange Orange Gold Yellow Chartreuse Lime SpringGreen Aqua
    DeepSkyBlue Blue Magenta Red Gray SlateGray Peru BlueViolet
    LightSlateGray DeepPink MediumTurquoise DodgerBlue Turquoise RoyalBlue SlateBlue DarkKhaki
    IndianRed MediumOrchid GreenYellow MediumAquamarine DarkSeaGreen Tomato RosyBrown Orchid
    MediumPurple PaleVioletRed Coral CornflowerBlue DarkGray SandyBrown MediumSlateBlue Tan
    DarkSalmon BurlyWood HotPink Salmon Violet LightCoral SkyBlue LightSalmon
    Plum Khaki LightGreen Aquamarine Silver LightSkyBlue LightSteelBlue LightBlue
    PaleGreen Thistle PowderBlue PaleGoldenrod PaleTurquoise LightGray Wheat NavajoWhite
    Moccasin LightPink Gainsboro PeachPuff Pink Bisque LightGoldenrod BlanchedAlmond
    LemonChiffon Beige AntiqueWhite PapayaWhip Cornsilk LightYellow LightCyan Linen
    Lavender MistyRose OldLace WhiteSmoke Seashell Ivory Honeydew AliceBlue
    LavenderBlush MintCream Snow White




В памяти компьютера значения констант и переменных типа color занимают 4 байта. Пример использования такой переменной в программе:

color Paint_1 = C'128,128,128';       // Переменной присвоено значение серого   цвета
color Colo = C'0x00,0x00,0xFF'; // Переменной присвоено значение синего цвета
color BMP_4 = C'0xFF,0x33,0x00' // Переменной присвоено значение красного цвета

color K_12 = 0xFF3300; // Переменной присвоено значение красного цвета
color N_3 = 0x008000; // Переменной присвоено значение зелёного цвета
color Color = 16777215; // Переменной присвоено значение белого цвета
color Alfa = 32768; // Переменной присвоено значение зелёного цвета

color A = Red; // Переменной присвоено значение красного цвета
color B = Yellow; // Переменной присвоено значение желтого цвета
color Colorit = Black; // Переменной присвоено значение черного цвета
color B_21 = White; // Переменной присвоено значение белого цвета


Тип datetime

Значение типа datetime — это значение даты и времени.

Значения этого типа могут использоваться в программах для анализа момента начала или окончания каких-либо событий, в том числе выхода важных новостей, начала/конца рабочего дня и пр. Константы даты и времени могут быть представлены в виде литеральной строки, которая состоит из 6 частей, представляющих числовое значение года, месяца, даты (либо даты, месяца, года), часа, минуты и секунды.

Константа обрамляется одинарными кавычками и начинается с символа D. Допускается использование усечённого значения: либо без даты, либо без времени, либо пустое значение. Диапазон изменения значений: от 1 января 1970 года до 31 декабря 2037 года. В памяти компьютера значения констант и переменных типа datetime занимают 4 байта. Значение представляет собой количество секунд, прошедших с 00:00 1 января 1970 года.

Пример использования в программе переменной типа datetime:

datetime Alfa    = D'2004.01.01 00:00';       // Новый Год
datetime Tim = D'01.01.2004'; // Новый Год
datetime Tims = D'2005. 05.12 16:30:45'; // 12 мая 2005г. 16 час.30 мин.45 сек.
datetime N_3 = D'12.05.2005 16:30:45'; // 12 мая 2005г. 16 час.30 мин.45 сек.
datetime Compile = D''; // равнозначно D'[дата компиляции] 00:00:00'

Объявление и инициализация переменных

Для того чтобы в ходе вычислений у программы не возникало вопросов, к какому типу данных принадлежит та или иная переменная, в MQL4 принято обязательное правило явно обозначать тип переменных в самом начале программы. Прежде чем переменная начнёт участвовать в каких-либо вычислениях, её необходимо объявить.

Объявление переменной — это первое упоминание переменной в программе. При объявлении переменной указывается её тип.

Инициализация переменной — это присвоение ей при её объявлении значения, соответствующего её типу. Любая переменная может быть инициализирована. Если явно не задано никакое начальное значение, то численная переменная инициализируется нулем (0), а переменная строкового типа инициализируется пустой строкой.

В MQL4 принято обязательное явное обозначение типа переменных при их объявлении. Объявление типа переменной выполняется при первом упоминании названия этой переменной. При втором и последующих упоминаниях переменной её тип не указывается. В ходе выполнения программы может меняться значение переменной, однако её тип и название не изменяются. Объявление типа переменной может выполняться в отдельных строках или в операторах.

Объявление переменной может осуществляться в отдельной строке:

   int Var_1;                 // Объявление переменной в отдельной строке

Эта запись означает, что будет использоваться переменная Var_1 (собственно объявление переменной) и тип этой переменной — int.

Допускается объявление в одной строке нескольких переменных одного типа:

   int Var_1, Box, Comm;      // Объявление нескольких переменных в одной строке

Эта запись означает, что будут использоваться переменные Var_1, Box и Comm и тип этих переменных — int, то есть перечисленные переменные будут учтены программой как переменные целого типа.

Допускается инициализация переменных в рамках операторов:

   double Var_5 = 3.7;        // Инициализация переменной в операторе присваивания

Эта запись означает, что будет использоваться переменная Var_5 вещественного типа с начальным значением 3.7.

Нигде в последующих строках программы тип переменных не указывается. Однако всякий раз, обращаясь к переменной, программа будет помнить, что эта переменная того типа, который указан при её объявлении. По ходу вычислений в программе значения переменных могут меняться, но тип переменных не изменяется.

Название переменной никак не связано с типом переменной, т.е. по названию переменной невозможно судить о её типе. Одно и то же название переменной в разных программах может быть использовано для переменных любого типа. Но в пределах одной программы тип любой переменной может быть объявлен только один раз. В ходе выполнения программы тип объявленной переменной не изменяется.

Примеры объявления и инициализации переменных

Объявление переменных может осуществляться в нескольких строках или в одной строке.

Допускается объявление нескольких переменных одного типа одновременно. В этом случае переменные перечисляются через запятую, а в конце строки ставится точка с запятой.


Рис. 12. Примеры объявления переменных в отдельной строке.

Объявление типа переменных производится один раз при первом упоминании переменной. При втором и последующих упоминаниях переменной её тип не указывается.


Рис. 13. Примеры объявления переменных в отдельной строке.

Допускаются объявление и инициализация переменных в операторах.


Рис. 14. Примеры инициализации переменных.


Рис. 15. Инициализация переменной в заголовке составного оператора.


Константы и переменныеОперации и выражения

 

Заменить логическое значение конкретным целочисленным типом данных — MATLAB & Simulink

Заменить

логическое значение на определенный целочисленный тип данных

В зависимости от архитектуры процессора, используемого вашим производственным оборудованием, вы можете повысить скорость выполнения сгенерированного кода. Выберите конкретный целочисленный тип данных для встроенный тип логический . Использование замены типа данных в сгенерированном коде вы можете заменить встроенный тип данных boolean одним из этих целых чисел типы:

  • INT8

  • UINT8

  • INT N

. н с 8 , 16 или 32 .

Пример модели

Модель ex_bool содержит два блока, которые выводят логическое значение и два блока, которые принимают логическое значение значения в качестве входных данных. В этом примере показано, как заменить тип данных на логический . с целочисленным типом данных int32 в коде, сгенерированном для 32-битного аппаратная цель.

Создать код, содержащий значение по умолчанию

логическое значение Тип данных

Просмотр созданного файла rtwtypes.h . typedef операторы содержат определение универсального типа boolean_T , который является имя генерации кода для boolean .

 /*============================================ ==============================*
 * Общие определения типов: boolean_T, char_T, byte_T, int_T, uint_T, *
 * реальное_Т, время_Т, улонг_Т. *
 *================================================= ===========================*/
typedef двойной реальный_T;
typedef двойной time_T;
typedef unsigned char boolean_T;
определение типа int_T;
typedef беззнаковое целое число uint_T;
typedef unsigned long ulong_T;
typedef char char_T;
typedef беззнаковый символ uchar_T;
typedef char_T byte_T; 

Просмотр созданного файла ex_bool.c . Кодекс объявляет логических переменных с использованием типа логическое_T .

 /* Внешние входы (сигналы корневого входа с автоматическим сохранением) */
структура typedef {
  реальный_T In1; /* '<Корень>/In1' */
  реальный_T In2; /* '<Корень>/In2' */
  логическое_T In3; /* '<Корень>/In3' */
  логическое_T In4; /* '<Корень>/In4' */
  реальный_T In5; /* '<Корень>/In5' */
} ExtU_ex_bool_T;
/* Внешние выходы (корневые выходные порты, питаемые сигналами с автоматическим сохранением) */
структура typedef {
  логическое_T Out1; /* '<Корень>/Выход1' */
  логическое_T Out2; /* '<Корень>/Выход2' */
  реальный_T Out3; /* '<Корень>/Выход3' */
} ExtY_ex_bool_T; 

Сгенерировать код, содержащий цель

логическое значение Тип данных
  1. Определить объект Simulink.AliasType с базовым типом int32 . Назовите объект, используя имя замены, которое вы хотите появляются в сгенерированном коде.

     mybool = Simulink.AliasType;
    mybool.BaseType = 'int32'; 
  2. В диалоговом окне «Параметры конфигурации» укажите Замена Имя поле для типа данных логическое значение as mybool .

Просмотр созданного файла rtwtypes.h . Код сопоставляет идентификатор mybool в собственный целочисленный тип целевого оборудования, создав typedef операторов.

 /* Общие определения типов ... */
...
typedef int boolean_T;
 ...
/* Определить замещающие типы данных Simulink Coder. */
typedef boolean_T mybool; /* Определяемый пользователем замещающий тип данных для boolean_T */ 

Просмотр созданного файла ex_bool .c . код объявляет логических переменных , которые используют тип mybool .

 /* Внешние входы (сигналы корневого входа с автоматическим сохранением) */
структура typedef {
  реальный_T In1; /* '<Корень>/In1' */
  реальный_T In2; /* '<Корень>/In2' */
  mybool In3; /* '<Корень>/In3' */
  mybool In4; /* '<Корень>/In4' */
  реальный_T In5; /* '<Корень>/In5' */
} ExtU_ex_bool_T;
/* Внешние выходы (корневые выходные порты, питаемые сигналами с автоматическим сохранением) */
структура typedef {
  mybool Out1; /* '<Корень>/Выход1' */
  mybool Out2; /* '<Корень>/Выход2' */
  реальный_T Out3; /* '<Корень>/Выход3' */
} ExtY_ex_bool_T; 

См.

также

Simulink.AliasType

См. также

  • Параметры конфигурации модели: Генерация кода Замена типа данных

Вы щелкнули ссылку, соответствующую этой команде MATLAB:

Запустите команду, введя ее в командном окне MATLAB. Веб-браузеры не поддерживают команды MATLAB.

Почему логические функции в C и C++ часто возвращают int вместо bool? – Правда в программном обеспечении

Существуют различные причины использования типа данных int для представления логических возвращаемых значений, параметров функций или переменных в C и C++. Некоторые из них исторические и традиционные.

Логические типы в C

До стандарта C99 в языке C не существовало официального логического типа данных. Несколько компиляторов реализовали свои собственные подходы, но тип int обычно использовался для представления значений true и false, где false представлялось нулем, а true представлялось любым ненулевым значением.

В стандартной библиотеке C есть много примеров функций и макросов, использующих это соглашение. Итак, именно так было написано много кода на C. Время от времени некоторые разработчики или команды «создавали свой собственный» тип данных bool, устанавливая typedef и некоторые константы true и false. Но большинство людей просто использовали int .

C официально имеет тип данных _Bool , начиная с C99, вместе с bool typedef, когда вы включаете . Причины использования int вместо bool в коде C включают:

  • Старая добрая традиция
    Так это делалось с самого начала C, и если это было достаточно хорошо тогда, то достаточно хорошо и сейчас.
  • Согласованность со стандартной библиотекой
    Многие функции стандартной библиотеки C всегда использовали и всегда будут использовать int для сообщения логических результатов
  • Согласованность с существующими собственными или сторонними библиотеками .
  • Сила привычки
    Вам придется использовать bool 21 раз, прежде чем избавиться от этой привычки, согласно обычным экспертам.
  • Неосведомленность
    Разработчик может не знать о bool typedef (и типе данных _Bool ) в C, даже если он существует с C99.
  • Переносимость исходного кода
    Может потребоваться переносимость исходного кода для компиляторов, которые еще не поддерживают тип данных C99 _Bool . (Да, есть много компиляторов, которые до сих пор не поддерживают все возможности C9.9 функций, даже почти два десятилетия спустя. А некоторые могут никогда этого не сделать.)
  • Синдром усталости при наборе текста (TFS)
    Это, по-видимому, вещь, хотя она не покрывается большинством страховых планов. Включение слишком много для переутомленных пальцев разработчика.

Булевы типы  в C++

C++ имеет тип данных bool (и ключевые слова для true и false) со времен первого стандарта C++ в 1998 году. Он обсуждался Страуструпом в 1994 как функция, принятая комитетом ANSI/ISO в его книге The Design and Evolution of C++ . Если вы пишете на C++, причины для использования int вместо bool, вероятно, включают:

  • Неосведомленность
    Разработчик может не знать о типе данных bool в C++, даже если он существует с момента первый стандарт, C++98.
  • Сила привычки
    Опять же, вы часто видите это у разработчиков, которые выросли, используя int в C, а затем перешли на C++. Или привычка сформировалась в C++ при написании кода на C++ до появления bool (т. е. до стандартизации языка).

Что делать?

Многие стандарты кодирования, с которыми я имел дело в организациях моих клиентов, говорят что-то вроде:

Для нового кода используйте bool для представления логических переменных, формальных параметров и возвращаемых значений. Для существующего кода, который использует int для представления логических значений, не преобразовывайте код для использования bool .

Оставить комментарий

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *