Вт янв 23, 2018 14:30:54
uint8_t buf[4][2][3][5] = { // 4 группы
{ // по 2 группы
{ // по 3 группы
{43, 122, 43, 81, 28}, // по 5 элементов uint8_t
{46, 553, 21, 35, 67},
{42, 169, 60, 31, 98},
},
{
{74, 296, 43, 62, 28},
{54, 323, 21, 33, 89},
{45, 787, 21, 17, 90},
},
},
{
{
{84, 122, 43, 81, 28},
{74, 553, 21, 35, 67},
{84, 169, 60, 31, 98},
},
{
{87, 26, 43, 69, 28},
{95, 33, 21, 32, 89},
{04, 77, 21, 18, 90},
},
},
{
{
{84, 12, 43, 82, 28},
{74, 53, 21, 35, 67},
{84, 19, 60, 36, 98},
},
{
{95, 33, 21, 32, 89},
{87, 26, 43, 69, 28},
{24, 77, 21, 18, 90},
},
},
{
{
{84, 19, 60, 36, 98},
{84, 12, 43, 82, 28},
{74, 53, 21, 35, 67},
},
{
{87, 26, 43, 69, 28},
{04, 77, 21, 18, 90},
{95, 33, 21, 32, 89},
},
},
};
Вт янв 23, 2018 20:27:19
#define DEFAULT 100;
unsigned char EEMEM mode = DEFAULT;
const unsigned char DEFAULT = 100;
Вт янв 23, 2018 20:48:32
не читайте глупостиПока_без_кота писал(а):Раньше жил - не тужил, именовал константы с помощью дефайнов и горя не знал. Сегодня вычитал, что это неправильно, так делают лузеры, и им потом девушки не дают...
вы объявили переменную, которая по умолчанию получает значение 100 и не может быть изменена в дальнейшем.Пока_без_кота писал(а):Переделал так:
и правильно делает, так как на этапе компиляции переменные не доступны.Пока_без_кота писал(а):Теперь на строчку с объявлением переменной в EEPROM ругается
Вт янв 23, 2018 22:00:23
Вт янв 23, 2018 22:23:40
ARV писал(а):не читайте глупости
#define DEFAULT (unsigned char)100;
Ср янв 24, 2018 07:06:48
для констант, укладывющихся в int, не обязательно, а для больших - присоединяюсь к рекомендации.AndyBig писал(а):Только желательно явно указывать тип
Ср янв 24, 2018 14:58:02
All the expressions in an initializer for an object that has static storage duration shall be constant expressions or string literals.
static const unsigned int DEF=100;
int main(){
volatile unsigned int def = DEF;
return 0;
}
arkhnchul@tween-arkhost:/tmp/ctst$ gcc -O0 -S -c tst1.c -o -
.file "tst1.c"
.section .rodata
.align 4
.type DEF, @object
.size DEF, 4
DEF:
.long 100
.text
.globl main
.type main, @function
main:
.LFB0:
.cfi_startproc
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rsp, %rbp
.cfi_def_cfa_register 6
movl $100, %eax
movl %eax, -4(%rbp)
movl $0, %eax
popq %rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE0:
.size main, .-main
.ident "GCC: (Debian 7.2.0-19) 7.2.0"
.section .note.GNU-stack,"",@progbits
arkhnchul@tween-arkhost:/tmp/ctst$ gcc -O1 -S -c tst1.c -o -
.file "tst1.c"
.text
.globl main
.type main, @function
main:
.LFB0:
.cfi_startproc
movl $100, -4(%rsp)
movl $0, %eax
ret
.cfi_endproc
.LFE0:
.size main, .-main
.ident "GCC: (Debian 7.2.0-19) 7.2.0"
.section .note.GNU-stack,"",@progbits
Вс янв 28, 2018 13:25:13
uint8_t buf [3][2] = {
{12 , 18},
{11, 28},
{13, 15}
};
static const registerSetting_t preferredSettings[]=
{
{CC1101_IOCFG0, 0x06},
{CC1101_FIFOTHR, 0x47},
{CC1101_SYNC1, 0x7A},
{CC1101_SYNC0, 0x0E},
{CC1101_PKTLEN, 0x14},
{CC1101_PKTCTRL0, 0x05},
{CC1101_FSCTRL1, 0x06},
{CC1101_FREQ2, 0x21},
{CC1101_FREQ1, 0x62},
{CC1101_FREQ0, 0x76},
{CC1101_MDMCFG4, 0xCA},
{CC1101_MDMCFG3, 0xF8},
{CC1101_MDMCFG2, 0x16},
{CC1101_DEVIATN, 0x40},
{CC1101_MCSM0, 0x18},
{CC1101_FOCCFG, 0x16},
{CC1101_AGCCTRL2, 0x43},
{CC1101_AGCCTRL1, 0x49},
{CC1101_WORCTRL, 0xFB},
{CC1101_FSCAL3, 0xE9},
{CC1101_FSCAL2, 0x2A},
{CC1101_FSCAL1, 0x00},
{CC1101_FSCAL0, 0x1F},
{CC1101_TEST2, 0x81},
{CC1101_TEST1, 0x35},
{CC1101_TEST0, 0x09},
};
Вс янв 28, 2018 13:39:17
Вс янв 28, 2018 16:17:18
Вс янв 28, 2018 19:27:18
Чт фев 15, 2018 14:17:06
unsigned char x;
if(x<0) x=0; // так компилятор ругается
if(x<=0) x=0; // уходит на минус
if(x==0) x=0; // тоже уходит на минус
if(x<1) x=0; // тоже уходит на минус
Чт фев 15, 2018 14:20:19
Чт фев 15, 2018 14:21:42
Чт фев 15, 2018 14:22:41
Чт фев 15, 2018 14:24:04
Чт фев 15, 2018 14:25:54
и в каком месте вашего вопроса это происходит?dm211 писал(а):уходит на минус при
x--;
Чт фев 15, 2018 14:27:03
Чт фев 15, 2018 14:27:34
Чт фев 15, 2018 14:29:20