и что тут не так синтаксисом? Как ни пробовал - все неправильно!
- Вложения
-
- keil_c51.PNG
- (39.36 КБ) 377 скачиваний
Код: Выделить всё
uint8_t buf [] = {
{12 , 18},
{11, 28},
{13, 15}
};
Код: Выделить всё
uint8_t buf [3][2] = {
{12 , 18},
{11, 28},
{13, 15}
};
Код: Выделить всё
uint8_t buf [3][2] = {
{12 , 18},
{11, 28},
{13, 15}
};
Код: Выделить всё
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},
},
},
};Код: Выделить всё
#define DEFAULT 100;
Код: Выделить всё
unsigned char EEMEM mode = DEFAULT;
Код: Выделить всё
const unsigned char DEFAULT = 100;
не читайте глупостиПока_без_кота писал(а):Раньше жил - не тужил, именовал константы с помощью дефайнов и горя не знал. Сегодня вычитал, что это неправильно, так делают лузеры, и им потом девушки не дают...
вы объявили переменную, которая по умолчанию получает значение 100 и не может быть изменена в дальнейшем.Пока_без_кота писал(а):Переделал так:
и правильно делает, так как на этапе компиляции переменные не доступны.Пока_без_кота писал(а):Теперь на строчку с объявлением переменной в EEPROM ругается
Полностью согласен.ARV писал(а):не читайте глупости
Код: Выделить всё
#define DEFAULT (unsigned char)100;
для констант, укладывющихся в int, не обязательно, а для больших - присоединяюсь к рекомендации.AndyBig писал(а):Только желательно явно указывать тип
так, к примеру, вполне корректно: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
Код: Выделить всё
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},
};