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

 
 
> Вопрос к знатокам С.
demiurg_spb
сообщение Oct 20 2008, 16:04
Сообщение #1


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Возник тут вопрос.
Кусочек программы можно написать двумя способами,
но с одним и тем же правильным результатом (компилятор avr-gcc 4.1.2).
Вопрос: это можно взять на вооружение?
И что стандарт может нам сказать по этому поводу?
Спасибо.
Код
//============================================
    unsigned char temp;

    temp = *uart->pUDR;   // Очищаем буфер 3-его уровня.
    temp = *uart->pUDR;  
    temp = *uart->pUDR;  

//============================================
    *uart->pUDR;   // Очищаем буфер 3-его уровня.
    *uart->pUDR;  
    *uart->pUDR;


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
sergeeff
сообщение Oct 21 2008, 17:01
Сообщение #2


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

Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007



Без финтов - это отлично, но!!! - очень непривычно. Чтение из переменной очевидно, когда оно стоит справа от знака присваивания. И когда этот знак опущен это и вызывает недоумение и неприятие.

Я думаю, если бы разместить где-нибудь на форумах вопрос типа: "Что означает выражение для переменной volatile int x?: x;"

абсолютное большинство ответит неправильно. Посему, учитывая, что всех не переучишь, и почти все люди работают в коллективах, я бы именно из этих соображений оставил бы: int temp = x;.

Коллеге zltigo респект за неординарный подход. Тем более, что почти аналогичное использование чтения переменной, например, в while(x) ни у кого вопросов не вызвало бы.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Oct 21 2008, 20:38
Сообщение #3


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(sergeeff @ Oct 21 2008, 20:01) *
Чтение из переменной очевидно, когда оно стоит справа от знака присваивания.
К слову: совершенно неочевидно, что занесение значения в переменную слева от знака присваивания является лишь побочным эффектом опрератора "=", но это так и есть.
Цитата(scifi @ Oct 21 2008, 20:42) *
1) Согласно стандарту языка для чтения volatile переменной var достаточно написать
Код
var;

Кому интересно, могу подкрепить это цитатами из стандарта.
Очень интересно. ИАР для АРМов, версии 4.30 точно (более старшие не проверял), с легкостью выкидывает такие обращения. ReAl объяснил это мутностью стандарта в этой части. Самому искать было лень. Но раз вы предлагаете найти - с удовольствием почитаю цитаты.
Цитата(scifi @ Oct 21 2008, 20:42) *
- бороться с предупреждениями компилятора при присваивании вспомогательной переменной
Код
dummy = var;
Все встречавшиеся мне компиляторы убирали предупреждение при добавлении строчки dummy = dummy;


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
zltigo
сообщение Oct 21 2008, 20:51
Сообщение #4


Гуру
******

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



Цитата(Сергей Борщ @ Oct 21 2008, 22:38) *
Все встречавшиеся мне компиляторы убирали предупреждение при добавлении строчки dummy = dummy;

Наиблее часто встречающийся sad.gif с "финтами", но безграмотный вариант sad.gif. Однозначный и независимый от компилятора и опимизации:
Код
(void)dummy;

Цитата(Сергей Борщ @ Oct 21 2008, 22:46) *
Вот сейчас специально поставлю ИАР и приведу листинг. Именно volatile переменную. Момент...

Не стоит smile.gif. Не получится.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Oct 21 2008, 20:59
Сообщение #5


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(zltigo @ Oct 21 2008, 23:51) *
Не стоит smile.gif. Не получится.
Если бы не получалось, я бы в эту ветку не писал:


Пожалуйста:
Код
OS_INTERRUPT void Timer_ISR()
{
    OS::TISRW ISRW;

    T1IR;   // = T1IR;                    // clear int flag
    IO0SET = (1 << 29);
На строку с комментарием предупреждение: Warning[Pe174]: expression has no effect D:\Projects\Req\scmRTOS\Samples\LPC2xxx\1-EventFlag\Src\main.cpp 108
CODE
#######################################################################
#######
# #
# IAR ARM ANSI C/C++ Compiler V4.30A/W32 EVALUATION 21/Oct/2008 23:47:48 #
# Copyright 1999-2005 IAR Systems. All rights reserved. #
# #
# Cpu mode = interwork #
# Endian = little #
# Stack alignment = 4 #
# Source file = D:\Projects\Req\scmRTOS\Samples\LPC2xxx\1-EventFlag\ #
# Src\main.cpp #
# Command line = D:\Projects\Req\scmRTOS\Samples\LPC2xxx\1-EventFlag\ #
# Src\main.cpp -D LPC2119 -lCN #
# D:\Projects\Req\scmRTOS\Samples\LPC2xxx\1-EventFlag\ #
# List\ -o D:\Projects\Req\scmRTOS\Samples\LPC2xxx\1-E #
# ventFlag\Obj\ -s9 --debug --cpu_mode thumb --endian #
# little --cpu ARM7TDMI-S --stack_align 4 --interwork #
# -e --fpu None --eec++ --dlib_config #
# D:\Programs\IAR\arm\LIB\dl4tptinl8n.h -I #
# D:\Projects\Req\scmRTOS\Samples\LPC2xxx\1-EventFlag\ #
# Src\ -I D:\Projects\Req\scmRTOS\Samples\LPC2xxx\1-Ev #
# entFlag\..\scmRTOS\Common\ -I #
# D:\Projects\Req\scmRTOS\Samples\LPC2xxx\1-EventFlag\ #
# ..\scmRTOS\ARM7\ -I D:\Programs\IAR\arm\INC\ #
# List file = D:\Projects\Req\scmRTOS\Samples\LPC2xxx\1-EventFlag\ #
# List\main.lst #
# Object file = D:\Projects\Req\scmRTOS\Samples\LPC2xxx\1-EventFlag\ #
# Obj\main.r79 #
# #
# #
##############################################################################
.........................
\ In segment DATA_AN, at 0xe0008000
\ <unnamed> volatile __data _A_T1IR
\ _A_T1IR:
\ 00000000 DS8 4
.........................
104 OS_INTERRUPT void Timer_ISR()
105 {
\ ??Timer_ISR:
\ 00000000 04E04EE2 SUB LR,LR,#+0x4
\ 00000004 1F502DE9 STMDB SP!,{R0-R4,R12,LR} ;; Push
106 OS::TISRW ISRW;
\ 00000008 70409FE5 LDR R4,??Timer_ISR_1 ;; Kernel
\ 0000000C 1400D4E5 LDRB R0,[R4, #+0x14]
\ 00000010 010080E2 ADD R0,R0,#+0x1
\ 00000014 1400C4E5 STRB R0,[R4, #+0x14]
107
108 T1IR; // = T1IR; // clear int flag
109 IO0SET = (1 << 29);
\ 00000018 4E02A0E3 MOV R0,#-536870908
\ 0000001C A00B80E3 ORR R0,R0,#+0x28000
\ 00000020 8015A0E3 MOV R1,#+0x20000000
\ 00000024 001080E5 STR R1,[R0, #+0]
Компилятор не такой и старый, сильно моложе чем C99 не говоря уже о C89:
Цитата
IAR C/C++ Compiler for ARM
4.30A Evaluation (4.30.1.237)
D:\Programs\IAR\arm\bin\iccarm.exe
09.02.2005 21:13:44, 9539584 bytes

Поэтому и хочется увидеть цитату из стандарта. А самому искать лень wink.gif GCC даже в версии 3.2.3 от 2003(?) года не выкидывает.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
zltigo
сообщение Oct 21 2008, 21:19
Сообщение #6


Гуру
******

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



Цитата(Сергей Борщ @ Oct 21 2008, 22:59) *
На строку с комментарием предупреждение: Warning[Pe174]: expression has no effect

Это типичное сообщение при выкидывании не volatile переменной. Просто T1IR неведомо как описан.
Давай чистый эксперимент.
Код
volatile int dummy = 0;
.....
function()
{
dummy;

Поскольку я пишу на "С" уже лет 20, именно так, в том числе и под IAR, года 4, то в результате СИШНОГО КОМПИЛЯТОРА я более, чем уверен.

В догонку:
Код
##############################################################################
#                                                                            #
# IAR ARM ANSI C/C++ Compiler V4.42A/W32               22/Oct/2008  01:13:05 #
# Copyright 1999-2005 IAR Systems. All rights reserved.                      #
#                                                                            #
#    Cpu mode        =  arm                                                  #
#    Endian          =  little                                               #
#    Stack alignment =  8                                                    #
#    Source file     =  D:\ARM_WORK\auc\MAIN\fiqhandl.c                      #
#    Command line    =  D:\ARM_WORK\auc\MAIN\fiqhandl.c -D LPC2000_IAR -lC   #
#                       D:\ARM_WORK\auc\Works_Kernel\List\ -lA               #
#                       D:\ARM_WORK\auc\Works_Kernel\List\ --remarks -o      #
#                       D:\ARM_WORK\auc\Works_Kernel\Obj\ -s9 --cpu_mode     #
#                       arm --endian little --cpu ARM7TDMI-S --stack_align   #
#                       8 --warnings_affect_exit_code                        #
#                       --no_path_in_file_macros --migration_preprocessor_ex #
#                       tensions -e --require_prototypes --fpu None          #
#                       --dlib_config "D:\IAR\Embedded                       #
#                       Workbench\arm\LIB\dl4tpannl8n.h" -I                  #
#                       D:\ARM_WORK\auc\..\COMMON\RTOS\portable\IAR\LPC2000\ #
#                        -I D:\ARM_WORK\auc\..\COMMON\RTOS\include\ -I       #
#                       D:\ARM_WORK\auc\..\COMMON\include\ -I                #
#                       D:\ARM_WORK\auc\main\include\ -I "D:\IAR\Embedded    #
#                       Workbench\arm\INC\" --inline_threshold=8             #
#    List file       =  D:\ARM_WORK\auc\Works_Kernel\List\fiqhandl.lst       #
#    Object file     =  D:\ARM_WORK\auc\Works_Kernel\Obj\fiqhandl.r79        #
#                                                                            #
#                                                                            #
##############################################################################

D:\ARM_WORK\auc\MAIN\fiqhandl.c
      1          
      2          #include <stdlib.h>
      3          #include "RTOS.h"

   \                                 In segment DATA_AN, at 0xe01fc140
   \   union <unnamed> volatile __data _A_EXTINT
   \                     _A_EXTINT:
   \   00000000                      DS8 4
      4          #include "fiqhandl.h"
      5          

   \                                 In segment DATA_Z, align 4, align-sorted
      6          volatile int dummy1;
   \                     dummy1:
   \   00000000                      DS8 4

   \                                 In segment DATA_Z, align 4, align-sorted
      7                   int dummy2;
   \                     dummy2:
   \   00000000                      DS8 4
      8          
      9          //---------------------------------------------------------------------------
     10          //
     11          //---------------------------------------------------------------------------

   \                                 In segment CODE, align 4, keep-with-next
     12          __fiq __arm void FIQ_ISR_handler(void)
     13          {
     14          
     15              dummy1;
   \                     FIQ_ISR_handler:
   \   00000000   14809FE5           LDR      R8,??FIQ_ISR_handler_0 ;; dummy1
   \   00000004   008098E5           LDR      R8,[R8, #+0]
     16              dummy2;
                     ^
Warning[Pe174]: expression has no effect
     17                
     18

Оба варианта - c выкидыванием и без.
Более старях компиляторов не держу, но если что, то и на самом старом и кривом имеющимся у меня BCC 3.1 будет тоже самое. Ибо вариантов нет.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Oct 21 2008, 21:38
Сообщение #7


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(zltigo @ Oct 22 2008, 00:19) *
Это типичное сообщение при выкидывании не volatile переменной. Просто T1IR неведомо как описан.
Я специально дал вырезку из листинга, в которой он сам эту переменную описывает как volatile:
Код
   \                                 In segment DATA_AN, at 0xe0008000
   \   <unnamed> volatile __data _A_T1IR
   \                     _A_T1IR:
   \   00000000                      DS8 4
По поводу типичности сообщений один человек очень красиво написал на AVRFreaks:
Цитата
In the case of warnings, the answer never lies in the C standard.
The C standard does not require any warnings.
We are trying to read the minds of the gods.
As a rule, a compiler issues a warning when you have done something that is allowed, but the compiler suspects might not be what you intended.


Цитата(zltigo @ Oct 22 2008, 00:19) *
Давай чистый эксперимент.
Не вопрос:
Код
volatile int dummy = 0;
void function()
{
    dummy;
}
//---------------------------------------------------------------------------
OS_INTERRUPT void Timer_ISR()
{
    OS::TISRW ISRW;

    T1IR;   // = T1IR;                    // clear int flag
Цитата
Warning[Pe174]: expression has no effect D:\Projects\Req\scmRTOS\Samples\LPC2xxx\1-EventFlag\Src\main.cpp 106
Warning[Pe174]: expression has no effect D:\Projects\Req\scmRTOS\Samples\LPC2xxx\1-EventFlag\Src\main.cpp 113
Цитата(zltigo @ Oct 22 2008, 00:19) *
Поскольку я пишу на "С" уже лет 20, именно так, в том числе и под IAR, года 4, то в результате СИШНОГО КОМПИЛЯТОРА я более, чем уверен.
Я не хочу спорить. ИАР вполне себе сишный компилятор и становится все лучше год от года. Я лишь хочу разобраться - это была бага или есть фича. Если стандарт описывает поведение однозначно - бага. Если нет - фича, и каждую версию каждого компилятора надо будет проверять на необходимость workaround с временной переменной, что я и делаю пока не разобрался в этом вопросе досконально. И как ни крути, хоть вариант без временной переменной красив, но, как видим, не всегда работает. А вариант с временной переменной работает всегда. Следовательно надо разобраться, кто виноват в непортируемости - компилятор, который не соответствует стандарту или программист, понадеявшийся на нерегламентируемое стандартом поведение компилятора.
Цитата(zltigo @ Oct 22 2008, 00:19) *
В догонку:
В новой версии behaviour изменился smile.gif

Все, спать. Иначе придется самим в стандарте копаться wink.gif


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
zltigo
сообщение Oct 21 2008, 21:53
Сообщение #8


Гуру
******

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



Цитата(Сергей Борщ @ Oct 21 2008, 23:38) *
ИАР вполне себе сишный компилятор и....

Тем не менее, ты компилишь П Л Ю С О В Ы М (точнее недоплюсовым sad.gif ) компилятором, почему-то рассуждая о C99. Кроме того, ты получил более, чем вменяемый Warning.
Цитата(Сергей Борщ @ Oct 21 2008, 23:38) *
...но, как видим, не всегда работает

Я бы поверил, в баг конкретного компилятора, если-бы не работал и с этой версией компилятора, причем гарантированно, многократно и постоянно использовал и использую, как минимум:
SSPDR;
для очистки FIFO SSP при полудуплексной передаче.
Хидеры традиционно использую самописные.
Цитата(Сергей Борщ @ Oct 21 2008, 23:38) *
По поводу типичности сообщений один человек очень красиво написал на AVRFreaks:

В данном случае я говорю о типичном собщении совершенно конкретного компилятора.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Oct 21 2008, 21:55
Сообщение #9


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(zltigo @ Oct 22 2008, 00:50) *
Тем не менее, ты компилишь ПЛЮСОВЫМ компилятором.
В точку. Попробовал без плюсов - варнинга нет, чтение есть. Придется штудировать и плюсовый стандарт crying.gif Не думал, что в этом вопросе он отличается от неплюсового.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- demiurg_spb   Вопрос к знатокам С.   Oct 20 2008, 16:04
- - zltigo   Цитата(demiurg_spb @ Oct 20 2008, 18:04) ...   Oct 20 2008, 16:17
|- - sergeeff   Цитата(zltigo @ Oct 20 2008, 20:17) Поско...   Oct 21 2008, 15:08
|- - sonycman   Цитата(zltigo @ Oct 20 2008, 20:17) Поско...   Jan 4 2009, 11:12
|- - zltigo   Цитата(sonycman @ Jan 4 2009, 14:12) Как ...   Jan 4 2009, 14:31
|- - sonycman   Цитата(zltigo @ Jan 4 2009, 18:31) Что-то...   Jan 4 2009, 15:42
|- - zltigo   Цитата(sonycman @ Jan 4 2009, 18:42) чтоб...   Jan 4 2009, 16:05
|- - GetSmart   Цитата(sonycman @ Jan 4 2009, 21:42) Попр...   Jan 4 2009, 16:22
|- - zltigo   Цитата(GetSmart @ Jan 4 2009, 19:22) но т...   Jan 4 2009, 16:27
|- - GetSmart   Цитата(zltigo @ Jan 4 2009, 22:27) С чего...   Jan 4 2009, 17:05
|- - zltigo   Цитата(GetSmart @ Jan 4 2009, 20:05) то в...   Jan 4 2009, 17:49
|- - Сергей Борщ   Цитата(GetSmart @ Jan 4 2009, 19:05) Если...   Jan 4 2009, 19:00
|- - sonycman   Цитата(Сергей Борщ @ Jan 4 2009, 23:00) Т...   Jan 4 2009, 20:18
- - scifi   Спасибо за подсказку. Я, по незнанию, наверное, вс...   Oct 20 2008, 17:27
|- - demiurg_spb   Цитата(scifi @ Oct 20 2008, 21:27) Спасиб...   Oct 20 2008, 18:05
|- - zltigo   Цитата(scifi @ Oct 20 2008, 19:27) ...но ...   Oct 20 2008, 18:17
|- - scifi   Цитата(zltigo @ Oct 20 2008, 22:17) 1.Упо...   Oct 20 2008, 18:35
|- - zltigo   Цитата(scifi @ Oct 20 2008, 20:35) Контрп...   Oct 20 2008, 19:11
|- - scifi   Цитата(zltigo @ Oct 20 2008, 22:17) 1.Упо...   Oct 20 2008, 19:34
|- - demiurg_spb   Цитата(scifi @ Oct 20 2008, 23:34) Я запу...   Oct 20 2008, 19:53
- - zltigo   Цитата(demiurg_spb @ Oct 20 2008, 21:53) ...   Oct 21 2008, 15:57
|- - aaarrr   Цитата(sergeeff @ Oct 21 2008, 21:01) Кол...   Oct 21 2008, 17:06
|- - zltigo   Цитата(Сергей Борщ @ Oct 21 2008, 22:38) ...   Oct 21 2008, 20:42
||- - Сергей Борщ   Цитата(zltigo @ Oct 21 2008, 23:42) Любой...   Oct 21 2008, 20:46
|||- - demiurg_spb   Попробовал на древнем: Цитата# IAR Atmel AVR C/EC+...   Oct 21 2008, 21:34
|||- - zltigo   Цитата(Сергей Борщ @ Oct 21 2008, 23:55) ...   Oct 21 2008, 22:02
||- - Непомнящий Евгений   Цитата(zltigo @ Oct 22 2008, 00:51) Одноз...   Oct 22 2008, 04:41
||- - IgorKossak   Цитата(Непомнящий Евгений @ Oct 22 2008, 07...   Oct 22 2008, 05:53
||- - zltigo   Цитата(Непомнящий Евгений @ Oct 22 2008, 06...   Oct 22 2008, 06:40
|- - ReAl   Цитата(Сергей Борщ @ Oct 21 2008, 22:38) ...   Nov 10 2008, 11:49
|- - IgorKossak   Цитата(ReAl @ Nov 10 2008, 13:49) Однако ...   Nov 11 2008, 10:09
||- - ReAl   Цитата(IgorKossak @ Nov 11 2008, 12:09) Т...   Nov 11 2008, 13:17
|- - VladimirYU   Код volatile int x; x ? : x; IAR AVR 4.12 ...   Nov 11 2008, 10:56
|- - aaarrr   Цитата(VladimirYU @ Nov 11 2008, 13:56) К...   Nov 11 2008, 11:13
||- - VladimirYU   Цитата(aaarrr @ Nov 11 2008, 15:13) Можно...   Nov 11 2008, 11:42
||- - aaarrr   Цитата(VladimirYU @ Nov 11 2008, 14:42) В...   Nov 11 2008, 11:43
|||- - VladimirYU   Цитата(aaarrr @ Nov 11 2008, 15:43) Значи...   Nov 11 2008, 11:57
|||- - aaarrr   Цитата(VladimirYU @ Nov 11 2008, 14:57) к...   Nov 11 2008, 12:02
||||- - VladimirYU   Цитата(aaarrr @ Nov 11 2008, 16:02) Листи...   Nov 11 2008, 12:17
|||- - aaarrr   Цитата(VladimirYU @ Nov 11 2008, 14:57) S...   Nov 11 2008, 13:31
|||- - VladimirYU   Цитата(aaarrr @ Nov 11 2008, 16:31) Они т...   Nov 11 2008, 13:43
||||- - aaarrr   Цитата(VladimirYU @ Nov 11 2008, 16:43) Р...   Nov 11 2008, 13:51
|||- - ReAl   Цитата(aaarrr @ Nov 11 2008, 15:31) Они т...   Nov 11 2008, 13:46
||||- - VladimirYU   Цитата(ReAl @ Nov 11 2008, 16:46) Может г...   Nov 11 2008, 13:59
||||- - Сергей Борщ   Цитата(VladimirYU @ Nov 11 2008, 16:59) Т...   Nov 11 2008, 14:05
||||- - aaarrr   Цитата(Сергей Борщ @ Nov 11 2008, 17:05) ...   Nov 11 2008, 14:10
||||- - VladimirYU   Цитата(Сергей Борщ @ Nov 11 2008, 17:05) ...   Nov 11 2008, 14:24
|||- - VladimirYU   Цитата(aaarrr @ Nov 11 2008, 16:31) Они т...   Nov 11 2008, 13:46
||- - ReAl   Цитата(VladimirYU @ Nov 11 2008, 13:42) В...   Nov 11 2008, 13:42
|- - Непомнящий Евгений   Цитата(VladimirYU @ Nov 11 2008, 14:56) К...   Nov 11 2008, 11:23
|- - zltigo   Цитата(Непомнящий Евгений @ Nov 11 2008, 14...   Nov 11 2008, 12:19
|- - aaarrr   Цитата(zltigo @ Nov 11 2008, 15:19) Это в...   Nov 11 2008, 12:22
||- - zltigo   Цитата(aaarrr @ Nov 11 2008, 15:22) Тогда...   Nov 11 2008, 12:27
|- - VladimirYU   Цитата(zltigo @ Nov 11 2008, 16:19) Это в...   Nov 11 2008, 12:26
- - scifi   Итак, итоги: 1) Согласно стандарту языка для чтени...   Oct 21 2008, 17:42
|- - zltigo   Цитата(scifi @ Oct 21 2008, 19:42) Другим...   Oct 21 2008, 17:52
- - ARV   а, простите, разве писать читаемый всеми код - это...   Nov 11 2008, 11:13
|- - aaarrr   Цитата(ARV @ Nov 11 2008, 14:13) Кодuchar...   Nov 11 2008, 11:15
|- - ARV   Цитата(aaarrr @ Nov 11 2008, 14:15) Ворни...   Nov 11 2008, 17:32
|- - aaarrr   Цитата(ARV @ Nov 11 2008, 20:18) возможно...   Nov 11 2008, 17:39
|- - ReAl   Цитата(ARV @ Nov 11 2008, 19:32) возможно...   Nov 11 2008, 18:53
- - aaarrr   RVCT на пропуск операнда ругается.   Nov 11 2008, 12:33
- - ARV   гм... я и не говорил, что пустой if - это норма......   Nov 11 2008, 20:02
|- - defunct   Цитата(ARV @ Nov 11 2008, 22:02) практика...   Dec 25 2008, 00:06
|- - zltigo   Цитата(defunct @ Dec 25 2008, 03:06) С ка...   Dec 25 2008, 08:21
|- - HARMHARM   Цитата(zltigo @ Dec 25 2008, 10:21) Я бы ...   Dec 25 2008, 11:19
||- - zltigo   Цитата(HARMHARM @ Dec 25 2008, 14:19) Код...   Dec 25 2008, 11:42
|- - defunct   Цитата(zltigo @ Dec 25 2008, 10:21) Научи...   Dec 25 2008, 13:29
|- - zltigo   Цитата(defunct @ Dec 25 2008, 16:29) Дума...   Dec 25 2008, 14:06
|- - defunct   Цитата(zltigo @ Dec 25 2008, 16:06) Вопро...   Dec 25 2008, 15:32
|- - Сергей Борщ   Цитата(defunct @ Dec 25 2008, 17:32) if ...   Dec 25 2008, 16:09
|- - defunct   Цитата(Сергей Борщ @ Dec 25 2008, 18:09) ...   Dec 25 2008, 16:24
|- - Сергей Борщ   Цитата(defunct @ Dec 25 2008, 18:24) А пр...   Dec 25 2008, 17:09
|- - defunct   Цитата(Сергей Борщ @ Dec 25 2008, 19:09) ...   Dec 25 2008, 17:21
|- - ARV   Цитата(defunct @ Dec 25 2008, 20:21) Да в...   Dec 27 2008, 13:45
- - ReAl   Если Вам приятно в таком духе - продолжайте, утрир...   Nov 11 2008, 22:04
- - gormih   Обсуждение напоминает обсуждение кода типа Кодuns...   Nov 14 2008, 11:31
- - ARV   хочу для универсализма сделать версию функции prin...   Nov 17 2008, 15:59
|- - Сергей Борщ   Кодvoid printf_7led(char *format, ... ){ ...   Nov 17 2008, 16:24
- - ARV   большое спасибо! я вокруг чего-то похожего бро...   Nov 17 2008, 17:25
|- - ReAl   Цитата(ARV @ Nov 17 2008, 19:25) мне каже...   Dec 11 2008, 08:56
|- - ARV   Цитата(ReAl @ Dec 11 2008, 11:56) Ну избы...   Dec 12 2008, 07:09
|- - zltigo   Цитата(ARV @ Dec 12 2008, 10:09) ...сдела...   Dec 12 2008, 07:15
|- - ARV   Цитата(zltigo @ Dec 12 2008, 10:15) http:...   Dec 13 2008, 11:46
- - sonycman   В оригинальной библиотеке для STM32 квалификатор v...   Jan 4 2009, 18:30
|- - zltigo   Цитата(sonycman @ Jan 4 2009, 21:30) Но, ...   Jan 4 2009, 18:34
- - sergeeff   Я пробовал такое в MS VS2008 для ARM. Данные читаю...   Jan 4 2009, 20:36


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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 22:39
Рейтинг@Mail.ru


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