Ne pas la déclarer ne changera rien à la possibilité d'y accéder.
L'accès est géré par le linker.
Il y a plusieurs façon de faire :
- façon
C-like deprecated : déclarer la fonction
static,
- façon
C++ : définir la fonction dans un
namespace anonyme.
f.cpp :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| namespace
{
void fn(void)
{
}
}
void f(void)
{
}
static void fs(void)
{
} |
main.cpp :
Code:
1 2 3 4 5 6 7 8 9 10
| void fn(void);
void fs(void);
void f(void);
int main(void)
{
f();
fn();
fs();
} |
Ca compile mais ça ne link pas car
fn et
fs ne sont pas accessibles contrairement à
f.