sichtbarkeit von funktionen
-
nö, bug nicht. man muss sich dann für eine funktion entscheiden, es können nicht zwei funktionen mit gleichem namen gelinkt werden.
oder meinst du mit 'dein zeug' ohne die sum?
naja, das ganze muss dann schon abgestimmt sein, wa.
-
khomikka schrieb:
nö, bug nicht. man muss sich dann für eine funktion entscheiden, es können nicht zwei funktionen mit gleichem namen gelinkt werden.
oder meinst du mit 'dein zeug' ohne die sum?
naja, das ganze muss dann schon abgestimmt sein, wa.
na ich kann das ja mit static verhindern, aber da muss meine sum() in derselben übersetzungseinheit sein(?). wenn ich nun eine funktion zwischen meinen übersetzungseinheiten verwenden will, aber andere leute diese nicht sehen sollen, was ist dann?
-
ja, soviel ich weiss, sind static dingers nur in der übersetzungseinzeit sichtbar.
wenn andere die eine funktion nicht sehen sollen, mach ne *.lib und behalt den source code.
wozu soll das gut sein?
-
k. schrieb:
ja, soviel ich weiss, sind static dingers nur in der übersetzungseinzeit sichtbar.
wenn andere die eine funktion nicht sehen sollen, mach ne *.lib und behalt den source code.
wozu soll das gut sein?die sollen sie nicht mit den augen nicht sehen, sondern mit dem compiler. stichwort namespace hogging. was ist, wenn in der lib eine funktion make_funny_things() intern verwendet wird, also nicht im dazugehörigen header auftaucht, und ich in einem programm eine andere funktion, die genau so heißt, definiere. geht das?
-
also, wenn du make_funny_sachens compilierst und ne *.lib von machst, dann wird die funktion nicht mehr unter dem namen sichtbar sein ( wenn ich mich nicht irre ).
da werden dann irgendwelche nummern draus.d.h. du kannst den namen für ne andere func benutzen.
man möge mich korrigieren, wenn dem nicht so ist.
-
k. schrieb:
also, wenn du make_funny_sachens compilierst und ne *.lib von machst, dann wird die funktion nicht mehr unter dem namen sichtbar sein ( wenn ich mich nicht irre ).
da werden dann irgendwelche nummern draus.d.h. du kannst den namen für ne andere func benutzen.
man möge mich korrigieren, wenn dem nicht so ist.was ist mit einer statischen bibliothek?
-
bin von ausgegangen, das eine *.lib statisch ist.
-
(((o))) schrieb:
k. schrieb:
also, wenn du make_funny_sachens compilierst und ne *.lib von machst, dann wird die funktion nicht mehr unter dem namen sichtbar sein ( wenn ich mich nicht irre ).
da werden dann irgendwelche nummern draus.d.h. du kannst den namen für ne andere func benutzen.
man möge mich korrigieren, wenn dem nicht so ist.was ist mit einer statischen bibliothek?
lib==statisch
dll==dynamisch (dynamic link library)
-
_matze schrieb:
(((o))) schrieb:
k. schrieb:
also, wenn du make_funny_sachens compilierst und ne *.lib von machst, dann wird die funktion nicht mehr unter dem namen sichtbar sein ( wenn ich mich nicht irre ).
da werden dann irgendwelche nummern draus.d.h. du kannst den namen für ne andere func benutzen.
man möge mich korrigieren, wenn dem nicht so ist.was ist mit einer statischen bibliothek?
lib==statisch
dll==dynamisch (dynamic link library)
oh, bei mir heißn se .a und .so
-
(((o))) schrieb:
hallo,
wie weit ist eine funktion sichtbar. wenn ich folgendes habe:
// file_a.c int sum(int a, int b) { return a + b; }
// file_b.c int sum(int, int); int f() { int x = sum(1, 2); }
und dann linke ich das ganze zusammen -- das geht, oder?
geht. darfst nur kein 'static' vor die funktion schreiben, sonst ist sie nur in der datei sichtbar, in der sie angelegt wurde.
-
+fricky schrieb:
geht. darfst nur kein 'static' vor die funktion schreiben, sonst ist sie nur in der datei sichtbar, in der sie angelegt wurde.
guten morgen!
-
moine! schrieb:
guten morgen!
*gähn*
was hab` ich verschlafen?
-
ach, schon gesehen. ich schlafmütze.