но я хотел еще обратить внимание на то, что лучше всего уйти от "магических чисел", сделав код по-настоящему универсальным, что и попытался показать в своём примере.
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Код: Выделить всё
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++; }
Код: Выделить всё
for(int i=0; ++i<sizeof(table); fprintf(p_file,"0x%02X,%c", table[i], i%NUM_COUNT ? ' ' : '\n'));Код: Выделить всё
#ifndef MYFILE_H
#define MYFILE_H
// содержимое myfile.h
#enfidПочему-то в Keil'е это не работает, так же, как и рекомендуемая там форма записи:WiseLord писал(а): - В своих многократно включаемых хидерах (myfile.h) оборачивать их содержимое в "скобки" препроцессораКод: Выделить всё
#ifndef MYFILE_H #define MYFILE_H // содержимое myfile.h #enfid
Код: Выделить всё
#ifndef FILENAME_INCLUDED
#define FILENAME_INCLUDED
/* Header File Contents */
#endif
Собственно, обе записи ничем не отличаются.Zhuk72 писал(а):так же, как и рекомендуемая там форма записи
Должно быть #endifZhuk72 писал(а):Код: Выделить всё
#enfid
Разумеется. FILENAME заменяется, скажем, на INIT_H, MENU_H и т.д.WiseLord писал(а):Надеюсь, у Вас не во всех файлах именно "FILENAME_INCLUDED".
а на размере кода сие не сказывается ?WiseLord писал(а): - Просто включать <avr/io.h> в каждом файле
Код: Выделить всё
typedef struct{
char chunkId[4];
char format[4];
char subchunk1Id[4];
unsigned short audioFormat;
unsigned short numChannels;
unsigned long sampleRate;
unsigned long byteRate;
unsigned short blockAlign;
unsigned short bitsPerSample;
char subchunk2Id[4];
unsigned long subchunk2Size;
}HEADER;
HEADER wav_header;