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

 
 
> О стилистике при оформлении исходников, для начинающих и не только
sergey sva
сообщение Feb 11 2010, 09:48
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923



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

#define dataflag (1<<6)
ReturnValue =(ReturnValue ~ dataflag);
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
rezident
сообщение Feb 11 2010, 12:06
Сообщение #2


Гуру
******

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



Цитата(sergey sva @ Feb 11 2010, 14:48) *
#define dataflag (1<<6)
Не в тему, но... есть устоявшееся правило: макросы принято обозначать заглавными буквами, а переменные и функции прописными или сочетанием заглавных и прописных. Так проще воспринимается текст исходника. В приложении русскоязычный перевод Application Note (AN-2000) "Стандарт кодирования на Си", от Micrium, Inc.

Поскольку невольно мое сообщения послужило началом своего рода оффтопка, то выделил подветку из http://electronix.ru/forum/index.php?showtopic=72745 в отдельную тему.

Сообщение отредактировал rezident - Feb 13 2010, 19:58
Прикрепленные файлы
Прикрепленный файл  micrium_an_2000_rus.pdf ( 166.36 килобайт ) Кол-во скачиваний: 1408
 
Go to the top of the page
 
+Quote Post
Ko4egap
сообщение Feb 24 2010, 08:03
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 63
Регистрация: 17-09-09
Пользователь №: 52 434



zltigo, не надо путать кислое с длинным. Так:
Код
if(a<b && c!=d){error();return(0);}
писать не буду, потому что я пропагандирую читабельность а не сокращение кол-ва строк.

У человеческого глаза довольно узкий угол обзора, в вашем случае, выражение
Код
if( ( a < b )&&( c != d ) )
расползается по всей строке, а сочетание символов ')&&( ' вообще сума сводит, создается ощущение будто бы это логическое "И" должно выполнится самым первым, вы разделели два цельных выражения на части и приклеили по осколку от каждого к третьему. Почему тогда && не выделен пробелами? А обилие абсолютно ненужных там скобок окончательно запутывает.

Вы в школе квадратное уравнение так записывали?
( a * x2 ) + ( b * x ) + c = 0

Или все-таки так?
a*x2 + b*x + c = 0

вот еще пример
a*(b+c)

или
a * ( b + c )

IMHO во втором случае неочевиден порядок действий

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

Сообщение отредактировал Ko4egap - Feb 24 2010, 08:24
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


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

 


RSS Текстовая версия Сейчас: 3rd August 2025 - 16:34
Рейтинг@Mail.ru


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