ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
19 июля
14649 Топик полностью
Bill (17.09.2004 10:19, просмотров: 1) ответил Алексей Мусин на Это баг, фича или ни то, ни другое? :)
Видимо, последнее. Эсобенности реализации компилятора. Очевидно, компилятор не может свернуть константы, если они не сгруппированы в выражении. Поэтому в дальнейшем придется писать код с учетом этих особенностей. Кстати, я проверил на своем компиляторе для Z80
;static char *pdata, *p_lastbyte;;
;unsigned ext_net;
;p_lastbyte = pdata + sizeof (*pdata) - 1 - ext_net + 3;
;
;         con int 000003
;     add ptr 
;             id  uns ext_net
;         sub ptr 
;             id  ptr pdata
; asg ptr 
;     id  ptr p_lastbyte
;
	ld	hl,(_pdata)
	ex	de,hl
	ld	hl,(_ext_net)
	ex	de,hl
	call	CSUB$U
	inc	hl
	inc	hl
	inc	hl
	ld	(_p_lastbyte),hl
Правда, я данные определил несколько по-другому, получилось что sizeof равно 1, поскольку размер данных 1 байт (указатель на char). Но константы компилятор у меня свернул.