Автор |
Сообщение |
|
|
Заголовок сообщения: |
Re: Структуры |
|
|
Victor__v писал(а): Зачем прописывать смещение, если без него удобней и в случае правок меньше ошибок? ну, не напрягало ни разу 8)
[quote="Victor__v"]Зачем прописывать смещение, если без него удобней и в случае правок меньше ошибок?[/quote] ну, не напрягало ни разу 8)
|
|
|
|
Добавлено: Сб сен 30, 2017 20:10 |
|
|
|
|
|
Заголовок сообщения: |
Re: Структуры |
|
|
mOleg писал(а): а зачем так сложно? ну, вот добавил смещение сразу: Код: -4 Struct: something 7 record: off_one byte: off_two word: off_tre
EndStruct
зачем усложнять себе жизнь? Похожий вопрос. Зачем прописывать смещение, если без него удобней и в случае правок меньше ошибок?
[quote="mOleg"]а зачем так сложно? ну, вот добавил смещение сразу: [code] -4 Struct: something 7 record: off_one byte: off_two word: off_tre
EndStruct [/code] зачем усложнять себе жизнь?[/quote] Похожий вопрос. Зачем прописывать смещение, если без него удобней и в случае правок меньше ошибок?
|
|
|
|
Добавлено: Пт сен 29, 2017 11:33 |
|
|
|
|
|
Заголовок сообщения: |
Re: Структуры |
|
|
а зачем так сложно? ну, вот добавил смещение сразу: Код: -4 Struct: something 7 record: off_one byte: off_two word: off_tre
EndStruct
зачем усложнять себе жизнь?
а зачем так сложно? ну, вот добавил смещение сразу: [code] -4 Struct: something 7 record: off_one byte: off_two word: off_tre
EndStruct [/code] зачем усложнять себе жизнь?
|
|
|
|
Добавлено: Чт сен 28, 2017 18:04 |
|
|
|
|
|
Заголовок сообщения: |
Re: Структуры |
|
|
Поля с отрицательным смещением. Пригождается в некоторых случаях. Т.е. первый элемент имеет смещение не 0 а -n ( в байтах ) В частности, отрицательное смещение используется в СПФ для хранения информации о слове ( флаги, CFA и пр )
Одно из применений структур с отриц.полями это дополнение самой структуры слова. К примеру в моём ( всё ещё не написанном ) форте Так CELL -- NFA 2 -- COUNT 2 -- FFA CELL -- HashFA CELL -- CFA CELL -- LFA \ данное поле является центральным т.е. его смещение 0 CELL -- LLFA \ поле где хранится цепочка слов в словаре CELL -- HereFA \ указатель на переменную кодофайла 2 CELLS - MaskFA \ поле для хранения маски поиска в словаре Вот, смотри, какая ситуация получается: Если у нас просто слова, то нам нужны поля до LFA Если у нас словарь, то нам нужно всё Если у нас временный словарь, то нам достаточно плясать от LLFA
Т.е. все отрицательные поля и LFA характеризуют обычное слово, а все положительные временный словарь, а их соединение словарь обычный. Как-то так
P.S. Ещё на форуме видел вариант реализации от mOleg-а
Поля с отрицательным смещением. Пригождается в некоторых случаях. Т.е. первый элемент имеет смещение не 0 а -n ( в байтах ) В частности, отрицательное смещение используется в СПФ для хранения информации о слове ( флаги, CFA и пр )
Одно из применений структур с отриц.полями это дополнение самой структуры слова. К примеру в моём ( всё ещё не написанном ) форте Так CELL -- NFA 2 -- COUNT 2 -- FFA CELL -- HashFA CELL -- CFA CELL -- LFA \ данное поле является центральным т.е. его смещение 0 CELL -- LLFA \ поле где хранится цепочка слов в словаре CELL -- HereFA \ указатель на переменную кодофайла 2 CELLS - MaskFA \ поле для хранения маски поиска в словаре Вот, смотри, какая ситуация получается: Если у нас просто слова, то нам нужны поля до LFA Если у нас словарь, то нам нужно всё Если у нас временный словарь, то нам достаточно плясать от LLFA
Т.е. все отрицательные поля и LFA характеризуют обычное слово, а все положительные временный словарь, а их соединение словарь обычный. Как-то так
P.S. Ещё на форуме видел вариант реализации от mOleg-а
|
|
|
|
Добавлено: Ср сен 27, 2017 23:09 |
|
|
|
|
|
Заголовок сообщения: |
Re: Структуры |
|
|
Цитата: отрицательные поля Что это значит? Обьясните пожалуйста.
[quote]отрицательные поля[/quote] Что это значит? Обьясните пожалуйста.
|
|
|
|
Добавлено: Ср сен 27, 2017 22:25 |
|
|
|
|
|
Заголовок сообщения: |
Re: Структуры |
|
|
Цитата: \ ~er 27.09.2017 \ Структуры с возможностью задания отрицательных полей \
VECT -- : minus(--) SWAP >R HEADER LAST-CFA @ R> 1+ ;
: minus: ['] minus(--) TO -- 0 ;
: plus(--) HEADER OVER LIT, ['] + COMPILE, RET, + ;
: STRUCT: 0 CONSTANT LAST-CFA @ @ 5 + ['] plus(--) TO -- 0 ;
: center \ size CFA ... n -- all-s 0 0 2>R BEGIN RP@ CELL+ @ WHILE HERE SWAP ! R> + >R R@ LIT, ['] - COMPILE, RET, -1 RP@ CELL+ +! REPEAT R> RDROP SWAP
['] plus(--) TO --
;
: STRUCT; + SWAP ! ['] plus(--) TO -- ;
Общий вид STRUCT: test minus: CELL -- A \ отрицательные поля CELL -- B center \ слово-разграничитель CELL -- C \ положительные поля CELL -- D STRUCT; Особенности реализации. По факту слово center строит все отрицательные поля
[quote]
\ ~er 27.09.2017 \ Структуры с возможностью задания отрицательных полей \
VECT -- : minus(--) SWAP >R HEADER LAST-CFA @ R> 1+ ;
: minus: ['] minus(--) TO -- 0 ;
: plus(--) HEADER OVER LIT, ['] + COMPILE, RET, + ;
: STRUCT: 0 CONSTANT LAST-CFA @ @ 5 + ['] plus(--) TO -- 0 ;
: center \ size CFA ... n -- all-s 0 0 2>R BEGIN RP@ CELL+ @ WHILE HERE SWAP ! R> + >R R@ LIT, ['] - COMPILE, RET, -1 RP@ CELL+ +! REPEAT R> RDROP SWAP
['] plus(--) TO --
;
: STRUCT; + SWAP ! ['] plus(--) TO -- ;
[/quote]
Общий вид
STRUCT: test minus: CELL -- A \ отрицательные поля CELL -- B center \ слово-разграничитель CELL -- C \ положительные поля CELL -- D STRUCT;
Особенности реализации. По факту слово center строит все отрицательные поля
|
|
|
|
Добавлено: Ср сен 27, 2017 20:40 |
|
|
|
|
|
Заголовок сообщения: |
Re: Структуры |
|
|
Ещё более логичный подход. Имена отдельно значения отдельно И у нас снова слово, создающее слово, ведущее себя как словарь Код: REQUIRE (: ~yz/lib/inline.f
: STRUCT( HERE >R
BEGIN PARSE-NAME DUP 0= IF 2DROP REFILL DROP \ чтоб писалось в несколько строк [ 2SWAP 2DUP ] \ манипуляции AGAIN \ со стеком [ 2SWAP ] \ потока-управления THEN DUP 1 = >R OVER C@ [CHAR] ) = R> AND INVERT WHILE DUP C, S, BEGIN PARSE-NAME DUP 0= IF 2DROP REFILL DROP [ 2SWAP ] AGAIN THEN
['] EVALUATE CATCH IF 2DROP R> DP ! \ очищаем память -2001 THROW THEN , \ сколько выделить памяти в будущем? REPEAT 2DROP 0 , \ конец поля имён структуры R@ BEGIN COUNT + >R R@ @ HERE R@ ! ALLOT R> CELL+ DUP @ 0= UNTIL DROP BEGIN PARSE-NAME DUP 0= IF 2DROP REFILL DROP [ 2SWAP ] AGAIN THEN SHEADER \ создаём определение ['] ] EXECUTE \ подсмотрено через HIDE \ дизъассемблер
\ Это аналог DOES> R> LIT,
(: \ сделать хардкор-вариант лямбды с пом. маш.кода? BEGIN PARSE-NAME DUP 0= IF 2DROP REFILL DROP [ 2SWAP ] AGAIN THEN 2>R BEGIN COUNT 2DUP 2R@ COMPARE 0= IF + @ [COMPILE] LITERAL RDROP RDROP EXIT ELSE + CELL+ DUP @ 0= \ имя не найдено ? IF -2003 THROW THEN THEN AGAIN ;) COMPILE, [COMPILE] ; [COMPILE] IMMEDIATE
;
Ещё более логичный подход. Имена отдельно значения отдельно И у нас снова слово, создающее слово, ведущее себя как словарь :wink: [code]REQUIRE (: ~yz/lib/inline.f
: STRUCT( HERE >R
BEGIN PARSE-NAME DUP 0= IF 2DROP REFILL DROP \ чтоб писалось в несколько строк [ 2SWAP 2DUP ] \ манипуляции AGAIN \ со стеком [ 2SWAP ] \ потока-управления THEN DUP 1 = >R OVER C@ [CHAR] ) = R> AND INVERT WHILE DUP C, S, BEGIN PARSE-NAME DUP 0= IF 2DROP REFILL DROP [ 2SWAP ] AGAIN THEN
['] EVALUATE CATCH IF 2DROP R> DP ! \ очищаем память -2001 THROW THEN , \ сколько выделить памяти в будущем? REPEAT 2DROP 0 , \ конец поля имён структуры R@ BEGIN COUNT + >R R@ @ HERE R@ ! ALLOT R> CELL+ DUP @ 0= UNTIL DROP BEGIN PARSE-NAME DUP 0= IF 2DROP REFILL DROP [ 2SWAP ] AGAIN THEN SHEADER \ создаём определение ['] ] EXECUTE \ подсмотрено через HIDE \ дизъассемблер
\ Это аналог DOES> R> LIT,
(: \ сделать хардкор-вариант лямбды с пом. маш.кода? BEGIN PARSE-NAME DUP 0= IF 2DROP REFILL DROP [ 2SWAP ] AGAIN THEN 2>R BEGIN COUNT 2DUP 2R@ COMPARE 0= IF + @ [COMPILE] LITERAL RDROP RDROP EXIT ELSE + CELL+ DUP @ 0= \ имя не найдено ? IF -2003 THROW THEN THEN AGAIN ;) COMPILE, [COMPILE] ; [COMPILE] IMMEDIATE
; [/code]
|
|
|
|
Добавлено: Вс июл 17, 2016 13:00 |
|
|
|
|
|
Заголовок сообщения: |
Re: Структуры |
|
|
Итак, структуры в виде слова, которое ведёт себя как словарь Без create, но с лямбдами Код: REQUIRE (: ~yz/lib/inline.f
: STRUCT( HERE >R
BEGIN PARSE-NAME DUP 0= IF 2DROP REFILL DROP \ чтоб писалось в несколько строк [ 2SWAP 2DUP ] \ манипуляции AGAIN \ со стеком [ 2SWAP ] \ потока-управления THEN DUP 1 = >R OVER C@ [CHAR] ) = R> AND INVERT WHILE DUP C, S, HERE \ место откуда указывает указатель :) 0 , BEGIN PARSE-NAME DUP 0= IF 2DROP REFILL DROP [ 2SWAP ] AGAIN THEN
['] EVALUATE CATCH IF 2DROP R> DP ! \ очищаем память -2001 THROW THEN ALLOT HERE SWAP ! \ указатель сформирован. REPEAT 2DROP 0 ,
BEGIN PARSE-NAME DUP 0= IF 2DROP REFILL DROP [ 2SWAP ] AGAIN THEN SHEADER \ создаём определение ['] ] EXECUTE \ подсмотрено через HIDE \ дизъассемблер
\ Это аналог DOES> R> LIT,
(: BEGIN PARSE-NAME DUP 0= IF 2DROP REFILL DROP [ 2SWAP ] AGAIN THEN 2>R BEGIN COUNT 2DUP 2R@ COMPARE 0= IF + CELL+ [COMPILE] LITERAL RDROP RDROP EXIT ELSE + @ DUP @ 0= \ уже конец структуры и эл-т не найден ? IF RDROP RDROP -2003 THROW THEN THEN AGAIN ;) COMPILE, [COMPILE] ; [COMPILE] IMMEDIATE
;
Как бонус, структуру можно писать в несколько строк. А теперь опишем порождатель структур Код: REQUIRE COMP-STR ~ER\MY-SLIT.F REQUIRE STRUCT( ~ER\STRUCT\STRUCT2.F
: CREA-STRUCT( 10000 ALLOCATE THROW >R S{ STRUCT( } R@ SWAP >R R@ MOVE R> R@ + >R BEGIN PARSE-NAME DUP 0= IF 2DROP REFILL DROP \ чтоб писалось в несколько строк [ 2SWAP 2DUP ] \ манипуляции AGAIN \ со стеком [ 2SWAP ] \ потока-управления THEN DUP 1 = >R OVER C@ [CHAR] ) = R> AND INVERT WHILE [ BL LIT, ] R@ C! R> 1+ >R R@ SWAP >R R@ MOVE R> R> + >R
REPEAT 2DROP S{ ) } R@ SWAP >R R@ MOVE R> R> + >R BEGIN PARSE-NAME DUP 0= IF 2DROP REFILL DROP [ 2SWAP ] AGAIN THEN SHEADER \ создаём определение ['] ] EXECUTE \ подсмотрено через HIDE \ дизъассемблер
R> R@ - R@ SWAP COMP-STR R> FREE THROW \ всеми любимый does> (: 10000 ALLOCATE THROW >R R@ >R R@ SWAP >R R@ MOVE R> R> + >R
BEGIN PARSE-NAME DUP 0= IF 2DROP REFILL DROP [ 2SWAP ] AGAIN THEN
R@ SWAP >R R@ MOVE R> R> + R@ - R@ SWAP EVALUATE R> FREE THROW
;) COMPILE, [COMPILE] ; ;
Как писать STRUCT( x 10 y 10 z cell ) test test z CREA-STRUCT( x cell y cell str 255 ) vrag vrag alias vrag qwerty
Итак, структуры в виде слова, которое ведёт себя как словарь Без create, но с лямбдами :)
[code] REQUIRE (: ~yz/lib/inline.f
: STRUCT( HERE >R
BEGIN PARSE-NAME DUP 0= IF 2DROP REFILL DROP \ чтоб писалось в несколько строк [ 2SWAP 2DUP ] \ манипуляции AGAIN \ со стеком [ 2SWAP ] \ потока-управления THEN DUP 1 = >R OVER C@ [CHAR] ) = R> AND INVERT WHILE DUP C, S, HERE \ место откуда указывает указатель :) 0 , BEGIN PARSE-NAME DUP 0= IF 2DROP REFILL DROP [ 2SWAP ] AGAIN THEN
['] EVALUATE CATCH IF 2DROP R> DP ! \ очищаем память -2001 THROW THEN ALLOT HERE SWAP ! \ указатель сформирован. REPEAT 2DROP 0 ,
BEGIN PARSE-NAME DUP 0= IF 2DROP REFILL DROP [ 2SWAP ] AGAIN THEN SHEADER \ создаём определение ['] ] EXECUTE \ подсмотрено через HIDE \ дизъассемблер
\ Это аналог DOES> R> LIT,
(: BEGIN PARSE-NAME DUP 0= IF 2DROP REFILL DROP [ 2SWAP ] AGAIN THEN 2>R BEGIN COUNT 2DUP 2R@ COMPARE 0= IF + CELL+ [COMPILE] LITERAL RDROP RDROP EXIT ELSE + @ DUP @ 0= \ уже конец структуры и эл-т не найден ? IF RDROP RDROP -2003 THROW THEN THEN AGAIN ;) COMPILE, [COMPILE] ; [COMPILE] IMMEDIATE
; [/code] Как бонус, структуру можно писать в несколько строк. А теперь опишем порождатель структур
[code] REQUIRE COMP-STR ~ER\MY-SLIT.F REQUIRE STRUCT( ~ER\STRUCT\STRUCT2.F
: CREA-STRUCT( 10000 ALLOCATE THROW >R S{ STRUCT( } R@ SWAP >R R@ MOVE R> R@ + >R BEGIN PARSE-NAME DUP 0= IF 2DROP REFILL DROP \ чтоб писалось в несколько строк [ 2SWAP 2DUP ] \ манипуляции AGAIN \ со стеком [ 2SWAP ] \ потока-управления THEN DUP 1 = >R OVER C@ [CHAR] ) = R> AND INVERT WHILE [ BL LIT, ] R@ C! R> 1+ >R R@ SWAP >R R@ MOVE R> R> + >R
REPEAT 2DROP S{ ) } R@ SWAP >R R@ MOVE R> R> + >R BEGIN PARSE-NAME DUP 0= IF 2DROP REFILL DROP [ 2SWAP ] AGAIN THEN SHEADER \ создаём определение ['] ] EXECUTE \ подсмотрено через HIDE \ дизъассемблер
R> R@ - R@ SWAP COMP-STR R> FREE THROW \ всеми любимый does> (: 10000 ALLOCATE THROW >R R@ >R R@ SWAP >R R@ MOVE R> R> + >R
BEGIN PARSE-NAME DUP 0= IF 2DROP REFILL DROP [ 2SWAP ] AGAIN THEN
R@ SWAP >R R@ MOVE R> R> + R@ - R@ SWAP EVALUATE R> FREE THROW
;) COMPILE, [COMPILE] ; ;
[/code]
Как писать STRUCT( x 10 y 10 z cell ) test test z CREA-STRUCT( x cell y cell str 255 ) vrag vrag alias vrag qwerty
|
|
|
|
Добавлено: Вт июн 28, 2016 23:11 |
|
|
|
|
|
Заголовок сообщения: |
Re: Структуры |
|
|
Create и : имеют одинаковое начало Но фигурка вырастает, однако, разная. По крайней мене, в СПФ Вот лог Код: [quote]: M1 HERE >R ALLOT : R> LIT, ['] + COMPILE, [COMPILE] ; ; : M2 CREATE ALLOT DOES> + ; Ok
10 M1 MASSIV
1 MASSIV Ok ( 5712556 ) 0 MASSIV Ok ( 5712556 5712555 )
SEE MASSIV
572ACB 8D80AB2A5700 LEA EAX , 572AAB ( M1+38 ) [EAX] 572AD1 C3 RET NEAR END-CODE Ok 10 M2 ARRAY Ok SEE ARRAY
572AE7 E846FFFFFF CALL 572A32 ( M2+F ) END-CODE Ok
0 ARRAY Ok ( 5712620 ) 1 ARRAY Ok ( 5712620 5712621 )[/quote]
Create и : имеют одинаковое начало Но фигурка вырастает, однако, разная. По крайней мене, в СПФ
Вот лог [code][quote]: M1 HERE >R ALLOT : R> LIT, ['] + COMPILE, [COMPILE] ; ; : M2 CREATE ALLOT DOES> + ; Ok
10 M1 MASSIV
1 MASSIV Ok ( 5712556 ) 0 MASSIV Ok ( 5712556 5712555 )
SEE MASSIV
572ACB 8D80AB2A5700 LEA EAX , 572AAB ( M1+38 ) [EAX] 572AD1 C3 RET NEAR END-CODE Ok 10 M2 ARRAY Ok SEE ARRAY
572AE7 E846FFFFFF CALL 572A32 ( M2+F ) END-CODE Ok
0 ARRAY Ok ( 5712620 ) 1 ARRAY Ok ( 5712620 5712621 )[/quote][/code]
|
|
|
|
Добавлено: Вт июн 21, 2016 20:50 |
|
|
|
|
|
Заголовок сообщения: |
Re: Структуры |
|
|
Victor__v писал(а): Создающие слова можно и без Create делать. К примеру, : const : lit, [compile] ; ; CREATE и : имеют одинаковое начало. Просто CREATE еще компилирует код push HERE.
[quote="Victor__v"]Создающие слова можно и без Create делать. К примеру, : const : lit, [compile] ; ;[/quote] CREATE и : имеют одинаковое начало. Просто CREATE еще компилирует код push HERE.
|
|
|
|
Добавлено: Вт июн 21, 2016 00:57 |
|
|
|
|
|
Заголовок сообщения: |
Re: Структуры |
|
|
Цитата: Кроме того, нет CREATE-слова, которое могло бы порождать экземпляры структур Создающие слова можно и без Create делать. К примеру, : const : lit, [compile] ; ; : var here 0 , : lit, [compile] ; ; И всё нормально работает. Если таким Макаром подойти к созданию структур?
[quote]Кроме того, нет CREATE-слова, которое могло бы порождать экземпляры структур[/quote] Создающие слова можно и без Create делать. К примеру, : const : lit, [compile] ; ; : var here 0 , : lit, [compile] ; ; И всё нормально работает. Если таким Макаром подойти к созданию структур?
|
|
|
|
Добавлено: Пн июн 20, 2016 23:53 |
|
|
|
|
|
Заголовок сообщения: |
Re: Структуры |
|
|
VoidVolker писал(а): Кстати, а как именно компилируются эти локальные определения: среди кода текущего слова или как-то отдельно? Среди кода. LOC[ создает ссылку вперед и переключает в режим интерпретации. ]LOC разрешает эту ссылку и возвращает в режим компиляции. Таким образом, LOC[ ]LOC - это просто вставка новой цепочки словаря, которая потом будет выключена из поиска (однако все еще видна, пока не отработало ; и не восстановило CURRENT). Поэтому никакого фрагментарного кода и описаний вида "в новой версии размер памяти для локальных определений увеличен до 128 кб" нет и не предвидится. Пока есть память, можно добавлять локальные описания. Подобную же вещь стоит проделать и со структурами. Имитация синтаксиса структур или классов - это обычный с точки зрения Форта код, который к его основным особенностям не имеет никакого отношения. Раз в Форте управление областью видимости осуществляется с помощью связанных списков (на основе которых строятся словари), то и работу со структурами имеет смысл рассмотреть через призму связанных списков и их особенной организации.
[quote="VoidVolker"]Кстати, а как именно компилируются эти локальные определения: среди кода текущего слова или как-то отдельно?[/quote] Среди кода. LOC[ создает ссылку вперед и переключает в режим интерпретации. ]LOC разрешает эту ссылку и возвращает в режим компиляции. Таким образом, LOC[ ]LOC - это просто вставка новой цепочки словаря, которая потом будет выключена из поиска (однако все еще видна, пока не отработало ; и не восстановило CURRENT). Поэтому никакого фрагментарного кода и описаний вида "в новой версии размер памяти для локальных определений увеличен до 128 кб" нет и не предвидится. Пока есть память, можно добавлять локальные описания.
Подобную же вещь стоит проделать и со структурами. Имитация синтаксиса структур или классов - это обычный с точки зрения Форта код, который к его основным особенностям не имеет никакого отношения. Раз в Форте управление областью видимости осуществляется с помощью связанных списков (на основе которых строятся словари), то и работу со структурами имеет смысл рассмотреть через призму связанных списков и их особенной организации.
|
|
|
|
Добавлено: Пн июн 20, 2016 14:46 |
|
|
|
|
|
Заголовок сообщения: |
Re: Структуры |
|
|
Hishnik писал(а): Это выглядит как-то уже за пределами понятия "локальное определение". Оно ведь на то и локальное, чтобы не быть видимым снаружи? Это если приводить к концепции, приведенной мною ранее. Кстати, а как именно компилируются эти локальные определения: среди кода текущего слова или как-то отдельно?
[quote="Hishnik"]Это выглядит как-то уже за пределами понятия "локальное определение". Оно ведь на то и локальное, чтобы не быть видимым снаружи?[/quote] Это если приводить к концепции, приведенной мною ранее. Кстати, а как именно компилируются эти локальные определения: среди кода текущего слова или как-то отдельно?
|
|
|
|
Добавлено: Пн июн 20, 2016 14:30 |
|
|
|
|
|
Заголовок сообщения: |
Re: Структуры |
|
|
VoidVolker писал(а): Осталось добавить возможность делать локальные слова доступными снаружи и объявлять не только внутри слова во время определения, но и уже после. Это выглядит как-то уже за пределами понятия "локальное определение". Оно ведь на то и локальное, чтобы не быть видимым снаружи? Если надо специально, то можно завести указатель на локальный объект, все равно при таком механизме все локальные переменные находятся в точности на тех же местах при каждом вызове внешнего определения.
[quote="VoidVolker"]Осталось добавить возможность делать локальные слова доступными снаружи и объявлять не только внутри слова во время определения, но и уже после.[/quote] Это выглядит как-то уже за пределами понятия "локальное определение". Оно ведь на то и локальное, чтобы не быть видимым снаружи? Если надо специально, то можно завести указатель на локальный объект, все равно при таком механизме все локальные переменные находятся в точности на тех же местах при каждом вызове внешнего определения.
|
|
|
|
Добавлено: Вс июн 19, 2016 22:00 |
|
|
|
|
|
Заголовок сообщения: |
Re: Структуры |
|
|
Hishnik писал(а): Это уже добавлено: viewtopic.php?f=23&t=2942 О как, а я как-то пропустил. Осталось добавить возможность делать локальные слова доступными снаружи и объявлять не только внутри слова во время определения, но и уже после.
[quote="Hishnik"]Это уже добавлено: viewtopic.php?f=23&t=2942[/quote] О как, а я как-то пропустил. Осталось добавить возможность делать локальные слова доступными снаружи и объявлять не только внутри слова во время определения, но и уже после.
|
|
|
|
Добавлено: Вс июн 19, 2016 21:25 |
|
|
|
|