при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
dm211 писал(а):Почему у меня не работает это?-![]()
Код: Выделить всё
flash int x[4]={100,150,200,250}; k=sizeof (x);
Я хочу получить 4, а получаю-0ARV писал(а):потрудитесь объяснить, как именно не работает. что вы ожидаете получить и что получаете на самом деле?
sizeof показывает размер объекта в байтах - т.е. в вашем случае размер массива будет равен sizeof(int) * 4.dm211 писал(а):... не могу получить количество цифр или символов массива.
Код: Выделить всё
static const uint8_t alarmSym[] PROGMEM = {
/* Empty rectangle */
0b11111,
0b00000,
0b00000,
// ... много других байтов (кстати, зачем у автора вопроса там int в аналогичном случае?)
0b00000,
};
for (i = 0; i < sizeof(alarmSym); i++)
ks0066WriteData(pgm_read_byte(&alarmSym[i]));Cогласно "классике" sizeof x и sizeof( x ) - это разные вещи. sizeof( x ) для массива вернёт размер указателя, чем массив собственно и является, а sizeof x - уже размер массива 'x' в байтах, да и то, если это было определено на этапе компиляции.Siarzhuk писал(а):sizeof показывает размер объекта в байтах - т.е. в вашем случае размер массива будет равен sizeof(int) * 4....
Все они меньше 256, поэтому можно было бы unsigned char обойтись.dm211 писал(а):Почему int ?-потому что там цифры
С unsigned char работаетWiseLord писал(а):Все они меньше 256, поэтому можно было бы unsigned char обойтись.dm211 писал(а):Почему int ?-потому что там цифры
будьте любезны ссылочку на эту классику - хотелось бы приобщиться к знаниям.shindax писал(а):Cогласно "классике" sizeof x и sizeof( x ) - это разные вещи. sizeof( x ) для массива вернёт размер указателя, чем массив собственно и является, а sizeof x - уже размер массива 'x' в байтах, да и то, если это было определено на этапе компиляции.
CodeVision такой CodeVision...dm211 писал(а):С unsigned char работает![]()
Как так запретили?shindax писал(а):С некоторых пор, стандарт Си сильно поменяли, как там теперь стало, читать надо. По крайней мере появился запрет на арифметику с указателями.
Однажды читал на одном из форумов, что CV не умеет sizeof. Проверял примеры, иллюстрирующие его "работу", на своем экземпляре - действительно не работает. Правда, не во всех версиях.dm211 писал(а):Да, CV, и не могу получить количество цифр или символов массива.
Rtmip, Вы еще здесь? Как Вам эта прэлесть с sizeof'ом?Rtmip писал(а):А еще более подробно можете написать, чтобы не читать по 100 страниц форума военного?
Я про то, какие еще "не все его недостатки"(CVAVR) и в чем именно не реализует стандарт?
Код: Выделить всё
#define FIFO( size )\
struct {\
unsigned char buf[size];\
unsigned char tail;\
unsigned char head;\
}
FIFO(128) fifo;
Код: Выделить всё
anonymous type with no linkage used to declare variable '<anonymous struct> fifo' with linkage [enabled by default]