Претензии к файлу справки
Участников: 3
FreeBasic :: Программирование :: Общее
Страница 1 из 1
Претензии к файлу справки
Файл справки далеко не полон.
Вот примеры:
1. Нету упоминания, что в Extern-End Extern можно писать еще и Lib "..."
2. Что такое Naked после имени процедуры или функции? Я это видел в коде ОС-ки на ФБ (хоть он и 16-битный)
А может я плохо умею читать?
Вот примеры:
1. Нету упоминания, что в Extern-End Extern можно писать еще и Lib "..."
2. Что такое Naked после имени процедуры или функции? Я это видел в коде ОС-ки на ФБ (хоть он и 16-битный)
А может я плохо умею читать?
VerhoLom- Сообщения : 67
Дата регистрации : 2010-07-06
Возраст : 42
Re: Претензии к файлу справки
1 - действительно нет
2 - а это вот как раз есть. Это. чтобы писать функции\сабы без пролог\епилог кода
Вот текст из справки:
2 - а это вот как раз есть. Это. чтобы писать функции\сабы без пролог\епилог кода
Вот текст из справки:
И пример к нему из того же самого:
Naked Write functions without prolog/epilog code
Syntax
Sub identifier Naked [calling_convention] ( param_list )
asm_statements
End Sub
Function identifier Naked [calling_convention] ( param_list ) As data_type
asm_statements
End Function
Parameters
identifier - name of the procedure.
calling_convention - calling convention of the procedure - can be cdecl, pascal, or stdcall
asm_statements - the code in the procedure body. The code for handling parameters and returning values must all be done manually. Note that the methods for doing these can change, depending on the calling convention.
param_list - parameters to be passed to the procedure.
data_type - the data type of the function.
Description
Naked allows the programmer to write procedures without the compiler generating any prolog/epilog code. This is useful when writing small, fast functions in Asm without any unnecessary overhead.
- Код:
'' Naked cdecl function
Function add naked cdecl _
( _
ByVal a As Integer, _
ByVal b As Integer _
) As Integer
Asm
mov eax, dword Ptr [esp+4] '' a
add eax, dword Ptr [esp+8] '' + b
ret '' return result in eax
End Asm
End Function
Print add( 1, 5 )
Кстати...
Кстати, вот способ писать строки без отдельного вынесения их в секцию данных (и без создания переменных для каждой):
Может еще как можно?
- Код:
Function DoHello naked() As Integer
Asm
push dword Ptr 0
push dword Ptr 0
Call @1 'на стеке будет адрес следующей строчки,
'а потом MessageBox сама все сделает
.ascii "Hello world\0"
@1:push dword Ptr 0
Call MessageBox
mov eax,0x00000001
ret
End Asm
End Function
Может еще как можно?
VerhoLom- Сообщения : 67
Дата регистрации : 2010-07-06
Возраст : 42
Re: Претензии к файлу справки
Саня пишет: Правда, создавать фрейм и все остальное самому придется
Фрейм не везде нужен. Хотя возможность очень полезная...
VerhoLom- Сообщения : 67
Дата регистрации : 2010-07-06
Возраст : 42
Re: Претензии к файлу справки
да, в справке действительно не все есть, но про extern, я как то давно писал.
https://freebasic.forum2x2.ru/forum-f10/tema-t152.htm
https://freebasic.forum2x2.ru/forum-f10/tema-t152.htm
electrik- Сообщения : 391
Дата регистрации : 2008-09-02
Возраст : 43
Откуда : галактика Млечный путь, система Солнечная, планета Земля, страна россия, город Санкт Петербург
FreeBasic :: Программирование :: Общее
Страница 1 из 1
Права доступа к этому форуму:
Вы не можете отвечать на сообщения
|
|