|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Mar 2009
Messaggi: 753
|
[C] funzione con attributo "hidden"
Ciao,
scrivendo una libreria in C su linux, vorrei rendere alcune funzioni "private" cioè l'applicazione che utilizza la libreria non potrà chiamarle.... ho pensato di utilizzare gli attributi GNU, e di utilizzare "hidden" Codice:
void __attribute__ ((visibility ("protected"))) f () { /* Do something. */; }
premesso che non ho provato se la mia soluzione è corretta, conoscete altre soluzioni migliori? Grazie. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Se hai una libreria strutturata così:
- mylib.h: header che deve includere l'utilizzatore - myprivatelib.h: header che contiene le funzioni che servono solo ad uso interno - myprivatelib.c: sorgente che implementa le funzioni ad uso interno - mylib.c: sorgente che implementa le funzioni della libreria Ti basterà includere myprivatelib.h in mylib.c. L'utilizzatore, includendo mylib.h non avrà accesso alle funzioni ad uso privato. Quando distribuirai la libreria in forma già compilata, includerai il file .a e .so (per linking statico e dinamico) ed il solo mylib.h. |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Mar 2009
Messaggi: 753
|
Chiarissimo.
Grazie. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 03:20.



















