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

 
 
> Косяк у Кейла, Препроцессор не следит за скобками
ViKo
сообщение Aug 28 2015, 11:21
Сообщение #1


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Делаю функцию программной задержки. (Длинная не нужна, естественно, но вопрос уже академический, захотел дойти до предела.) Каждый цикл выполняется за 4 такта, отсюда и деление на 4000. Нюансы не интересны, не в этом дело.

Код
#define SYSCLK        48000000ULL
#define _NS    1
#define _US    1000
#define _MS    1000000
#define _SS    1000000000

#define DELAY(VALUE, UNIT);    \
  /* DelayFourCycles(VALUE * UNIT * (SYSCLK / 1000000) / 4000); */ \
  DelayFourCycles((SYSCLK / 1000000) * VALUE * UNIT / 4000);

  DELAY(50, _SS);


Так вот, когда сделал, как в закомментированной строке, Кейл ругается на то, что число не влазит в int. И загружает в функцию абы что. Если же сделать, как в строке без комментария, то все вычисляется правильно. Выходит, Кейл видит что последовательность операций равнозначна, что со скобками, что без, и лихо их отбрасывает. Возникает переполнение. Хотя не понятно, отчего возникает, 64 битов должно хватать (на компьютерном калькуляторе хватает). Как будто у Кейла не 64-битовое вычисление, а меньшее.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
aaarrr
сообщение Aug 29 2015, 11:25
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Что касается предупреждений по поводу управляющего выражения, то тут, по-моему, стоит разделять два случая:

1. Когда выражение изначально представляет собой константу:
Код
while(1) {...}

if(123) {...} /* Правда, выглядит ужасно? */

Тут предупреждение явно ни к чему.

2. Когда выражение обращается в константу на этапе компиляции:
Код
unsigned int x;

if(x >= 0) {...}

В этом случае есть явный повод для предупреждения.

Оформление бесконечного цикла - это уже дело вкуса программиста. Я, пожалуй, соглашусь, что for(;;) {..} лучше, просто
на основании того, что if(1) {...} мне представляется ужасным. Но while(1) {...} все же ни малейшего отторжения не вызывает.
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Aug 29 2015, 16:57
Сообщение #3


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



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

Например:
if (1) ... до препроцессора могло быть if (Expr) ..., где Expr определялось дефайном. Вся конструкция вызывала бы опциональную инициализацию периферии, например. В отличие от #if допускает даже рунтайм-условие (вроде Fclk > 100). И безусловно должно допускать простейшую константу или выражение, вычисляемое на этапе компиляции. Неполиткорректно называть это ужасным. Ну а что позволено if-у, то юпитеру while и подавно. ИМХО всё вполне читабельно.Так же ИМХО, должно вызывать ремарку компилятора, если условие известно на этапе компиляции.

Смысла в таких конструкциях более чем достаточно. Хватит вопить про бессмысленность и всякий криминал. Даже просто if (0 или 1) (это без вмешательства препроцессора) могло быть промежуточной (но 100% рабочей) версией кода, расчитанной на изменение условия в дальнейшем. Вобщем код опционален и этот блок можно включить или выключить по необозначенному явно условию. Смысл в константах есть. Нарушений стандарта нет.

Сообщение отредактировал GetSmart - Aug 29 2015, 17:31


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
zltigo
сообщение Aug 29 2015, 17:29
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



QUOTE (GetSmart @ Aug 29 2015, 19:57) *
Для zltigo:
Качество кода ремарками не измеряется. Не вводите в заблуждение читателей, называя их ругательством компилятора.

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


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Aug 29 2015, 17:39
Сообщение #5


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Цитата(zltigo @ Aug 29 2015, 21:29) *
Писатели не могущие четко выражать свои мысли компилятору получают такой-же нечеткий результат.

На while (const) ?

Критикуйте конструктивней и точечней. Необоснованность ругательств компиляторов нужно разбирать в каждом конкретном случае.

Компиляторописатели тоже лажают. Встречал граблю когда в конструкции if (0) стоит метка и вне if-а, ниже по коду, стоит на неё переход. Виновен компиляторописатель. Необычный код, но по стандарту ошибки нет.

Сообщение отредактировал GetSmart - Aug 29 2015, 17:58


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
zltigo
сообщение Aug 29 2015, 17:47
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



QUOTE (GetSmart @ Aug 29 2015, 20:39) *
Критикуйте конструктивней и точечней.

Читайте внимательнее и не фантазируйте. Warning на constant expression это не единственный warning выдаваемый компиляторами из тех, ктороые нерадивые любят давить.

QUOTE (ViKo @ Aug 29 2015, 20:40) *
Кстати, я никогда не пишу #if (0) или #if (1), а только #if (true), #if (false)

А смысл? Тем более для препроцессора, для которого это никаким боком не ключевые слова, как впрочем и для произвольного (не C11? C99?) Си компилятора. Только в свежих стандартах true и false определены и в том числе для препроцесора.

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


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
ViKo
сообщение Aug 29 2015, 18:05
Сообщение #7


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(zltigo @ Aug 29 2015, 20:47) *
А смысл? Тем более для препроцессора, для которого это никаким боком не ключевые слова, как впрочем и для произвольного (не C11? C99?) Си компилятора. Только в свежих стандартах true и false определены и в том числе для препроцесора.

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

На то есть #include <stdbool.h> А смысл - лично для меня, эстета. rolleyes.gif "Истина" круче "единицы".
Go to the top of the page
 
+Quote Post
zltigo
сообщение Aug 29 2015, 18:07
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



QUOTE (ViKo @ Aug 29 2015, 21:05) *
На то есть #include <stdbool.h> А смысл - лично для меня, эстета. rolleyes.gif "Истина" круче "единицы".

Повторяю - ЕСЛИ ЕСТЬ, а есть только начиная, помнится, с C99, а если нет, то...


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
ViKo
сообщение Aug 29 2015, 18:14
Сообщение #9


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(zltigo @ Aug 29 2015, 21:07) *
Повторяю - ЕСЛИ ЕСТЬ, а есть только начиная, помнится, с C99, а если нет, то...

Напомните, сколько лет прошло с 1999 года? Что ж цепляться за старое? В том, чем я пользуюсь, есть. Прикажете забить (забыть)?
Go to the top of the page
 
+Quote Post
zltigo
сообщение Aug 29 2015, 18:39
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



QUOTE (ViKo @ Aug 29 2015, 21:14) *
Напомните, сколько лет прошло с 1999 года? Что ж цепляться за старое?

Абсолютно согласен, что использовать следует C99. Но жизнь, есть жизнь. Я вот до сих пор вынужден пользовать И компиляторы не поддерживающие C99. C99 просто нет. Есть и глупые варианты, например, пару месяцев назад начал рабтать с котроллерос с ядром BA22. Есть GCC toolchain весь из себя C99. Но весь говнокод идущий с контроллером компилируется не в С99. Какого черта - вопрос не ко мне, а к "программистам" тупо по умолчанию собравших. А там действительно чистый говнокод, который-бы сто лет не читал-бы, но он идет, в соответствии с новейшими тенденциями, ВМЕСТО документации sad.gif.


QUOTE (aaarrr @ Aug 29 2015, 21:18) *
Зачем? Потому что это нормальная языковая конструкция.

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




QUOTE (GetSmart @ Aug 29 2015, 21:14) *
Список компиляторов в студию

Не сочтите за труд ознакомится с ранее данным ответом на этот вопрос.


QUOTE (GetSmart @ Aug 29 2015, 21:14) *
Сможете опровергнуть?

Частные случаи на то и частные, что не всегда эквиваленты общим. По этой причне в стандарте эти понятия и РАЗДЕЛЕНЫ и constant expression в контесте while() НЕ упоминаются, в отличие, кстати, от for()

QUOTE (aaarrr @ Aug 29 2015, 21:18) *
Специально посмотрел: использую оба варианта, но чаще while(1). Объясняется это очень просто - в старые времена
компиляторы под ARM отвратительно компилировали циклы for, из-за чего повсеместно использовал do-while.

У меня еще для одного изделия на AM186CC еще живет BCC 3.1 за него, правда уже не уверен, но 2.0 для while( 1 ) генерил лишний код в цикле, в отличие от for( ; ; ).


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Aug 29 2015, 23:04
Сообщение #11


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Цитата(zltigo @ Aug 29 2015, 22:39) *
Не сочтите за труд ознакомится с ранее данным ответом на этот вопрос.

По ключевому вопросу whille (const) всё прояснилось. Остальное не интересно. Превращать ремарки в варнинги и пугать народ не надо.

Цитата(zltigo @ Aug 29 2015, 22:39) *
Частные случаи на то и частные, что не всегда эквиваленты общим. По этой причне в стандарте эти понятия и РАЗДЕЛЕНЫ и constant expression в контесте while() НЕ упоминаются, в отличие, кстати, от for()

Вхождение во множество частного случая не обязано упоминаться. Упоминаются только исключения частных случаев. Для ограничения множества (выражений) в каком-то типе цикла нужно это явно описывать с обоснованием. Т.к. в цикле for все три аргумента независимы друг от друга, то управляющее выражение ничем не должно отличаться от других циклов. Но, судя по всему, в стандарте оно отличается тем, что отсутствие выражения в нём принимается за истину. И это странно, во-первых из-за нарушения симметрии. Не читал стандарт, но возможно необоснованного. Кроме того, отсутствие чего-то логичнее принимать за 0.

Упд.
Похоже на за уши притягивание этого типа цикла к бесконечным.

Сообщение отредактировал GetSmart - Aug 30 2015, 10:03


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
zltigo
сообщение Aug 30 2015, 07:03
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



QUOTE (GetSmart @ Aug 30 2015, 02:04) *
Превращать ремарки в варнинги и пугать народ не надо.

Деление на ремарки и варнинги весьма условное и не у всех компиляторов. У MS нет: https://msdn.microsoft.com/en-us/library/6t...h(v=vs.90).aspx
А у некоторых нет ни того ни другого они пишут "Diagnostic 279: controlling expression is constant".


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Aug 30 2015, 10:11
Сообщение #13


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Цитата(zltigo @ Aug 30 2015, 11:03) *
Деление на ремарки и варнинги весьма условное и не у всех компиляторов.

....

Вот о озадачился автор, как включить сие предупреждение,...

Ремарка это скорее подсказка. Качество кода подсказками не измеряется.


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- ViKo   Косяк у Кейла   Aug 28 2015, 11:21
- - aaarrr   В макросе не хватает скобок для VALUE и UNIT.   Aug 28 2015, 11:44
- - den_po   Цитата(ViKo @ Aug 28 2015, 16:21) Как буд...   Aug 28 2015, 11:51
- - ViKo   Заменил #define _NS 1ULL #define _US 1000ULL #defi...   Aug 28 2015, 12:00
|- - aaarrr   Цитата(ViKo @ Aug 28 2015, 15:00) "Н...   Aug 28 2015, 12:08
|- - ViKo   Цитата(aaarrr @ Aug 28 2015, 15:08) Прост...   Aug 28 2015, 12:13
- - Kabdim   Кмк объяснение другое. VALUE * UNIT * (SYSCLK / 10...   Aug 28 2015, 12:01
|- - ViKo   Цитата(Kabdim @ Aug 28 2015, 15:01) Кмк о...   Aug 28 2015, 12:04
- - Kabdim   Если говорить про стиль макрописания. То как тольк...   Aug 28 2015, 12:12
|- - zltigo   QUOTE (Kabdim @ Aug 28 2015, 15:12) Если ...   Aug 28 2015, 14:46
|- - aaarrr   Цитата(zltigo @ Aug 28 2015, 17:46) Да и ...   Aug 28 2015, 14:57
||- - zltigo   QUOTE (aaarrr @ Aug 28 2015, 17:57) В чем...   Aug 28 2015, 15:02
||- - scifi   Цитата(zltigo @ Aug 28 2015, 18:02) В бес...   Aug 28 2015, 15:13
|- - Petka   Цитата(zltigo @ Aug 28 2015, 17:46) .... ...   Aug 28 2015, 18:51
|- - zltigo   QUOTE (Petka @ Aug 28 2015, 21:51) Так чт...   Aug 28 2015, 18:55
|- - Petka   Цитата(zltigo @ Aug 28 2015, 21:55) Это п...   Aug 28 2015, 19:13
- - Mihey_K   ЦитатаСначала любые операнды типа CHAR или SHORT п...   Aug 28 2015, 13:47
- - Golikov A.   ЦитатаСначала любые операнды типа CHAR или SHORT п...   Aug 28 2015, 14:26
- - Kabdim   Огласите пожалуйста решение лучше. Думаю многим бы...   Aug 28 2015, 15:16
|- - zltigo   QUOTE (Kabdim @ Aug 28 2015, 18:16) Оглас...   Aug 28 2015, 16:17
|- - aaarrr   Цитата(zltigo @ Aug 28 2015, 19:17) Бессм...   Aug 28 2015, 17:31
||- - zltigo   QUOTE (aaarrr @ Aug 28 2015, 20:31) Тогда...   Aug 28 2015, 18:05
||- - aaarrr   Цитата(zltigo @ Aug 28 2015, 21:03) Это е...   Aug 28 2015, 18:06
|||- - zltigo   QUOTE (aaarrr @ Aug 28 2015, 21:06) Да ну...   Aug 28 2015, 18:12
|||- - aaarrr   Цитата(zltigo @ Aug 28 2015, 21:12) Да, э...   Aug 28 2015, 18:41
||||- - zltigo   QUOTE (aaarrr @ Aug 28 2015, 21:41) Но по...   Aug 28 2015, 18:50
||||- - scifi   Цитата(zltigo @ Aug 28 2015, 21:50) Ну ин...   Aug 28 2015, 18:58
|||||- - zltigo   QUOTE (scifi @ Aug 28 2015, 21:58) Я вас ...   Aug 28 2015, 19:22
|||||- - Petka   Цитата(zltigo @ Aug 28 2015, 22:22) Не см...   Aug 28 2015, 19:37
||||||- - zltigo   QUOTE (Petka @ Aug 28 2015, 22:37) в конс...   Aug 28 2015, 21:43
||||||- - Petka   Цитата(zltigo @ Aug 29 2015, 00:43) Вы, о...   Aug 28 2015, 22:09
||||||- - zltigo   QUOTE (Petka @ Aug 29 2015, 01:09) Откуда...   Aug 28 2015, 23:39
|||||- - scifi   Цитата(zltigo @ Aug 28 2015, 22:22) Увы, ...   Aug 28 2015, 21:14
|||||- - zltigo   QUOTE (scifi @ Aug 29 2015, 00:14) Пардон...   Aug 28 2015, 21:32
|||||- - scifi   Цитата(zltigo @ Aug 29 2015, 00:32) От то...   Aug 28 2015, 21:40
||||- - aaarrr   Цитата(zltigo @ Aug 28 2015, 21:50) ...ко...   Aug 28 2015, 18:59
|||- - GetSmart   Цитата(zltigo @ Aug 28 2015, 22:12) Но ко...   Aug 29 2015, 09:37
||- - gerber   Цитата(zltigo @ Aug 28 2015, 22:05) for(;...   Aug 30 2015, 09:34
||- - zltigo   QUOTE (gerber @ Aug 30 2015, 12:34) В опе...   Aug 30 2015, 10:01
|- - Kabdim   Цитата(zltigo @ Aug 28 2015, 20:17) Давай...   Aug 28 2015, 18:27
|- - zltigo   QUOTE (Kabdim @ Aug 28 2015, 21:20) Не мо...   Aug 28 2015, 18:36
|- - Kabdim   Демагогия в техническом споре... свежо! И легк...   Aug 28 2015, 18:55
- - aaarrr   Бессмысленной можно было бы признать запись while(...   Aug 28 2015, 15:18
- - Mihey_K   Сам по себе цикл с единичной итерацией да, бесмысл...   Aug 28 2015, 15:21
- - Golikov A.   вообще то, насколько я помню трюк do while(0) созд...   Aug 28 2015, 17:22
|- - zltigo   QUOTE (Golikov A. @ Aug 28 2015, 20:22) в...   Aug 29 2015, 09:53
- - scifi   Цитата(ViKo @ Aug 28 2015, 20:09) Думал, ...   Aug 28 2015, 17:39
|- - aaarrr   Цитата(scifi @ Aug 28 2015, 20:39) Да это...   Aug 28 2015, 17:51
|- - zltigo   QUOTE (scifi @ Aug 28 2015, 20:39) Да это...   Aug 28 2015, 18:09
- - ViKo   напишите for ( ; true; ), если пустота не нравится...   Aug 28 2015, 17:57
- - Golikov A.   ЦитатаСначала любые операнды типа CHAR или SHORT п...   Aug 28 2015, 18:01
|- - aaarrr   Цитата(Golikov A. @ Aug 28 2015, 21:01) я...   Aug 28 2015, 19:13
- - Golikov A.   вот я знаю пример явно ошибочного выражения Кодin...   Aug 28 2015, 18:11
- - Golikov A.   вот while(0) уже не интересно, а тезис что при выч...   Aug 28 2015, 18:46
- - Golikov A.   Цитатау K&R совершенно аналогично. Это вообще ...   Aug 29 2015, 03:34
|- - zltigo   QUOTE (Golikov A. @ Aug 29 2015, 06:34) Н...   Aug 29 2015, 06:04
- - ViKo   Что вы сцепились на пустом. Я вот ни разу не испол...   Aug 29 2015, 04:30
- - Golikov A.   ща и вам достанется.... как вы могли ни разу не ис...   Aug 29 2015, 04:52
|- - ViKo   Цитата(Golikov A. @ Aug 29 2015, 07:52) щ...   Aug 29 2015, 05:00
- - Golikov A.   ЦитатаУже писал - в стандарте нет запрета на испол...   Aug 29 2015, 06:22
|- - ViKo   Цитата(Golikov A. @ Aug 29 2015, 09:22) а...   Aug 29 2015, 07:10
|- - Сергей Борщ   Цитата(ViKo @ Aug 29 2015, 10:10) Восклиц...   Aug 29 2015, 14:55
|- - zltigo   QUOTE (Сергей Борщ @ Aug 29 2015, 17:55) ...   Aug 29 2015, 14:59
|- - ViKo   Цитата(Сергей Борщ @ Aug 29 2015, 17:55) ...   Aug 29 2015, 17:37
- - GetSmart   Цитата(zltigo @ Aug 29 2015, 13:53) Ошибк...   Aug 29 2015, 09:58
|- - zltigo   QUOTE (GetSmart @ Aug 29 2015, 12:58) Кон...   Aug 29 2015, 10:14
- - GetSmart   А разве while(1) не сам всевышний написал? Цитат...   Aug 29 2015, 10:22
|- - zltigo   QUOTE (GetSmart @ Aug 29 2015, 13:22) А р...   Aug 29 2015, 10:32
- - GetSmart   У цикла while только один аргумент - предусловие в...   Aug 29 2015, 10:43
|- - zltigo   QUOTE (GetSmart @ Aug 29 2015, 13:43) У ц...   Aug 29 2015, 11:35
|- - GetSmart   Цитата(zltigo @ Aug 29 2015, 15:35) Вот п...   Aug 29 2015, 12:08
||- - aaarrr   Цитата(zltigo @ Aug 29 2015, 21:39) В воп...   Aug 29 2015, 18:44
|||- - zltigo   QUOTE (aaarrr @ Aug 29 2015, 21:44) Как В...   Aug 29 2015, 19:00
||- - aaarrr   Цитата(zltigo @ Aug 29 2015, 21:39) Частн...   Aug 29 2015, 19:10
|||- - zltigo   QUOTE (aaarrr @ Aug 29 2015, 22:10) Чисто...   Aug 29 2015, 19:28
||- - zltigo   QUOTE (GetSmart @ Aug 30 2015, 13:11) Рем...   Aug 30 2015, 10:17
|- - GetSmart   Цитата(zltigo @ Aug 29 2015, 21:47) Warni...   Aug 29 2015, 18:14
- - scifi   Гы-гы. Развели мегасрач на пустом месте. Модератор...   Aug 29 2015, 11:57
- - Golikov A.   ЦитатаОшибку того, что программист получил не то, ...   Aug 29 2015, 15:42
|- - zltigo   QUOTE (Golikov A. @ Aug 29 2015, 18:42) Г...   Aug 29 2015, 16:01
|- - aaarrr   Препроцессор тут с визгом притянут за уши. Это не ...   Aug 29 2015, 16:07
|- - zltigo   QUOTE (aaarrr @ Aug 29 2015, 19:07) Препр...   Aug 29 2015, 16:20
||- - aaarrr   Цитата(zltigo @ Aug 29 2015, 19:20) Что э...   Aug 29 2015, 17:12
||- - zltigo   QUOTE (aaarrr @ Aug 29 2015, 20:12) 1 - э...   Aug 29 2015, 17:39
||- - aaarrr   Цитата(zltigo @ Aug 29 2015, 20:39) А где...   Aug 29 2015, 18:18
|- - zltigo   QUOTE (aaarrr @ Aug 29 2015, 19:07) Препр...   Aug 30 2015, 08:53
- - ViKo   Кстати, я никогда не пишу #if (0) или #if (1), а т...   Aug 29 2015, 17:40
3 страниц V   1 2 3 >


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

 


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


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