Вопросы по С/С++ (СИ)
Разобраться бы ещё с тем, что такое P и R.
- Реклама
Наверное это какая-то структура объявленная где-то ранее. DC видимо тоже переменная.
меня раскритиковали
пришлось убрать всё сообщение
Последний раз редактировалось ARV Пт дек 23, 2016 12:54:04, всего редактировалось 2 раза.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Сообщения: 2089
- Зарегистрирован: Вс июн 19, 2016 09:32:03
Проверил на gcc:ARV писал(а):не ломайте голову
1. 3DC может быть корректным и без запятой, например, #define DC 12
2. P - может быть функцией, возвращающей структуру
3. R так же может быть макросом, например, #define R value-
вот и живите теперь с этим
Код: Выделить всё
#define DC 12
#define R value-
struct One
{
int value;
} one;
int a = 3DC; // error
int b = one.value-; // eror
int c = one.R-; // error
вот вам делать нефигаReflector писал(а):Да, у тебя там еще e- было, это тоже error
исключительно ради вас - сменил подпись
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Реклама
как можна сократить данный код ?
Код: Выделить всё
do{
fprintf( p_file, "0x%02X,", sin_table[i] ); // вывод значения массива в файл
if( i == 31 || i == 63 || i == 95 || i == 127 || i == 159 || i == 191 || i == 223 || i == 255 ) fprintf(p_file, "\n"); // перевод строки
} while( ++i != 0 );
Tell Me The Truth
Код: Выделить всё
unsigned char k = 0;
do
{
fprintf( p_file, "0x%02X,", sin_table[i] ); // вывод значения массива в файл
if ((++k) == 31) {k = 0; fprintf(p_file, "\n");} // перевод строки
} while( ++i != 0 );
Последний раз редактировалось Zhuk72 Пт янв 13, 2017 11:01:02, всего редактировалось 1 раз.
Каждый имеет право на свое личное ошибочное мнение.
У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
Что значит "сократить" ?FreshMan писал(а):как можна сократить данный код ?
Можно его удалить, тогда он сократиться до нуля
Поподробнее описывайте задачи, тут всё-таки не экстрасенсы.
- Сообщения: 2089
- Зарегистрирован: Вс июн 19, 2016 09:32:03
FreshMan писал(а):как можна сократить данный код ?
Код: Выделить всё
do
{
fprintf( p_file, "0x%02X,", sin_table[i] );
if((i & 0x1F) == 0x1F) fprintf(p_file, "\n");
} while(++i);
FreshMan писал(а):как можна сократить данный код ?
Код: Выделить всё
#define NUM_COUNT 32
int i = 0;
while(i < sizeof(sin_table)){
fprintf( p_file, "0x%02X, ", sin_table[i] );
if(!(i % NUM_COUNT)) fprintf(p_file, "\n");
i++;
}если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Код: Выделить всё
for (int i = 0; i < sizeof(sin_table); i++) {
fprintf(p_file, "0x%02X, ", sin_table[i]);
if(!(i % 32)) fprintf(p_file, "\n");}Ещё вариант:
Код: Выделить всё
do{
fprintf( p_file, "0x%02X,", sin_table[i] );
if(0x1F == i & 0x1F)
fprintf(p_file, "\n");
} while(++i != 0);принципиальным было предложение заменить длиннющий и не модифицируемый оператор ИЛИ на аналитическое выражение, которое определит длину формируемой строки, все прочие идеи уже носят характер оформительский.
но я хотел еще обратить внимание на то, что лучше всего уйти от "магических чисел", сделав код по-настоящему универсальным, что и попытался показать в своём примере.
но я хотел еще обратить внимание на то, что лучше всего уйти от "магических чисел", сделав код по-настоящему универсальным, что и попытался показать в своём примере.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Код: Выделить всё
for(int i=0;i<sizeof(table);i++) int r=!(i%32) ? fprintf(p_file,"0x%02X, ",table[i],"\n"):fprintf(p_file,"0x%02X, ",table[i]);тогда уж такпросто КОТ писал(а):Можно попробовать в одну строчку
Код: Выделить всё
for(int i=-1; ++i<sizeof(table); fprintf(p_file,"0x%02X,%с",table[i], i%NUM_COUNT ? ' ' : '\n'));еще чуть-чуть, и будет, как у меня в подписи
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при i=0 происходит перевод строкиARV писал(а):FreshMan писал(а):как можна сократить данный код ?Код: Выделить всё
#define NUM_COUNT 32 int i = 0; while(i < sizeof(sin_table)){ fprintf( p_file, "0x%02X, ", sin_table[i] ); if(!(i % NUM_COUNT)) fprintf(p_file, "\n"); i++; }
Tell Me The Truth
Ну... тут проще нулевую выборку скормить в файл вручную. А потом вписать наш шедевр, начиная с первого:
Код: Выделить всё
for(int i=0; ++i<sizeof(table); fprintf(p_file,"0x%02X,%c", table[i], i%NUM_COUNT ? ' ' : '\n'));я бы не сильно гнался за краткостью - всё хорошо в меру.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
У меня какой-то пунктик на этом. Перед защитой курсовой последние два дня только и делал, что сидел да код сокращал. В итоге на страничку А4 влез с запасом, хотя там была работа с графикой и клеточные автоматы. 
меня тут упрекают за нравоучения... но что делать, если моё мнение как-то идет вразрез с мнением других, а высказаться хочется? уж простите...
я тут прочитал, что есть "спортивное программирование", есть конкурсы на самый "красивый" код (там форматируют текст в виде всяких картинок), на самый короткий, на самый странный (см. мою подпись)... но какое отношение всё это имеет к нормальной жизни?
да, как особый вид искусства - согласен, имеет право на существование. но при постоянном применении это уже смахивает на какое-то отклонение... я стараюсь не злоупотреблять этим.
я тут прочитал, что есть "спортивное программирование", есть конкурсы на самый "красивый" код (там форматируют текст в виде всяких картинок), на самый короткий, на самый странный (см. мою подпись)... но какое отношение всё это имеет к нормальной жизни?
да, как особый вид искусства - согласен, имеет право на существование. но при постоянном применении это уже смахивает на какое-то отклонение... я стараюсь не злоупотреблять этим.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!





