![]() |
Oracle Forms Definicije Tipova
Moze li neko da mi objsni ovo(detaljno):
typedef struct d2fctx d2fctx; typedef dvoid *(* d2fmalc) (d2fctx *context, size_t size); typedef dvoid *(* d2fmrlc) (d2fctx *context, dvoid *ptr, size_t newsize); typedef void (* d2fmfre) (d2fctx *context, dvoid *ptr); struct d2fctx { dvoid *pidgc_d2fctx; /* Builder context */ dvoid *cdata_d2fctx; /* Client Data */ d2fmalc d2fmalc_d2fctx; /* Client provided malloc */ d2fmfre d2fmfre_d2fctx; /* Client provided free */ d2fmrlc d2fmrlc_d2fctx; /* Client provieded realloc */ }; kod je uzet iz d2fpriv.h a dvoid je void *dvoid tip. |
Ne znam kakve ovo veze ima sa sql-om, oracle ili bilo cime sa te strane univerzuma... meni ovo lici na c. Si siguran da znas sta hoces da pitas ?
|
Citat:
Citat:
- поинтер на функцију - која као параметре узима: -- поинтер по имену context на претходно дефинисан тип d2fctx, -- ознаку за величину типа size_t. - и враћа поинтер на тип dvoid. Citat:
- поинтер на функцију - која као параметре узима: -- поинтер по имену context на претходно дефинисан тип d2fctx, -- поинтер по имену ptr на тип dvoid. -- ознаку по имену newsize за величину типа size_t. - и враћа поинтер на тип dvoid. Citat:
- поинтер на функцију - која као параметре узима: -- поинтер по имену context на претходно дефинисан тип d2fctx, -- поинтер по имену ptr на тип dvoid. - и враћа поинтер на тип dvoid. Citat:
Ово је несрећни цеовски начин за нешто што се у објектно-оријентисаним језицима зове убризгавање зависности („dependency injection“) и представља начин да се бибилиотеци проследе корисничке функције. У објектно оријентисаним језицима би се овај исти проблем решио наслеђивањем или убризгавањем зависности. У јави на пример, горепоменута структура постала би интерфејс (interface), а кориснички код би имплементирао (implement) тај интерфејс и преиначио (overload) функције по жељи. Познатији пример употребе сличног механизма у Ц-у су униксове операције са датотекама — сваки систем датотека (filesystem) попуњава структуру са поинтерима на функције које изводе стандардне операције над датотекама. Пример како то изгледа у линуксовом кернелу. ф |
Vreme je GMT +2. Trenutno vreme je 04:34. |
Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.